본문 바로가기

협업

(21)
커밋 메시지를 요청하는 git merge ctrl + x 로 종료해도 merge는 정상적을 수행되는 것 같아 보인다. ~/.gitconfig내 경우에는 편집기 를 확인할 수도 있다. ( cat ~/.gitconfig) : 그런데 왜 이런게 발생하는 것일까? 검색해보니 브랜치에 대한 커밋이 병합중인 브랜치보다 조금 더 업데이트 된 경우에만 발생한다고 한다. 브랜치를 변경하고 (브랜치에 파일을 더 추가) 다른 브랜치를 브랜치에 병합하려고 하면 git이 해당 브랜치에 대한 merge message를 쓰기를 요청한다. 이 이미지에서는 branch에 LICENSE 파일과 .gitignore 파일을 추가했음을 보여준다. 그 후 master에 merge하여 "npm-init"이라는 메시지를 남겼다. 마스터는 새파일, 라이센스를 포함하고 그것에 대해 내가 병..
git remote branch 가져오기 원격 저장소 가져오기 git checkout remote_branch 하는 경우 오류가 나는 경우가 있다. $ git checkout talk_master $ git checkout -t origin/talk_master fatal: Cannot update paths and switch to branch 'feature/rename' at the same time error: pathspec 'talk_master' did not match any file(s) knwon to git. 등의 에러가 발생한다. 원격저장소의 브랜치를 가져오는 경우에 대상 원격 브랜치가 없어서 발생한 에러인데, 저장소를 그대로 clone을 하던지, pull을 해도 받아지지않는다. 원격 저장소 업데이트 원격 브랜치에 접근하기..
master에서 작업한 경우 해결방안 프로젝트를 시작할때 git을 한번도 써보지 못한 사람들이 저지르는 실수가 무엇일까? 다양한 실수가 있겠지만 가장많이 저지르는 실수는 master에서 작업하는 것이라고 생각한다. 그래서 이런 실수를 한 경우 어떻게 처리하는게 좋을지에 대한 post를 작성해 보았다. 시나리오 내가 소속된 팀은 talk 관련된 모듈을 맡았고, 나는 프로젝트를 처음 시작하였다. 프로젝트를 처음 clone한 상태에서 나는 내가 맡은 talk 파트를 작업하였다. 즉, master local branch 에서 내가 맡은 talk 파일을 작업하였다. 알고보니 talk 파트는 master_talk 브랜치에서 작업을 하고 있었고 정기적으로 master_talk에서 작업한 내용을 master에 merge request를 날리는 식으로 협업..
git stash 명령어 활용하기 git stash는 내가 작업하던 것을 로컬에 저장하기 위해 사용한다. 일반적으로 내가 하던 작업이 있는 도중에 pull을 받아야 할 필요성이 생겼을 때 가장 많이 사용한다. git에 저장되는 것이기 때문에 컴퓨터를 재부팅해도 남아있다. 작업한 내용 저장하기 $ git stash 저장한 리스트 보기 $ git stash list 저장한 리스트중 맨위 stash 적용하기 $ git stash apply 저장한 리스트 중 맨아래 지우기 $ git stash drop 저장한 stash 변경사항 보기 $ git stash show -p stash@{0} ※ stash이름은 list에 있는 것중 아무거나 적용할 수 있다. git stash 적용한 것 되돌리기 1. stash 명령어 사용 $ git stash sh..
Git - pull request 아직은 헷갈리는 git pull request에 대해 살펴보자. pull request는 git 자체가 제공하는 것이 아니라 github와 같은 git기반 서비스 업체가 제공하는 기능이다. pull request 순서 · 1단계(fork): git 서비스가 제공하는 UI를 이용해 프로젝트 저장소를 fork하여 자신의 원격 저장소를 만든다. https://project-repository/repo.git를 fork하여 https://user-repository/repo.git가 생겼다고 가정하자. · 2단계(clone): 자신 계정의 원격 저장소를 clone을 해서 로컬 저장소를 만든다. 이렇게 하면 자신의 원격 저장소가 origin이라는 alias를 가지게 되고 로컬은 master 브랜치가 된다. 그리고..
GIT 수정한 것 되돌리기 Git을 사용하다보면 수정한 내용을 되돌리고 싶을 경우가 간혹있다. GUI가 있는 Git 클라이언트의 경우엔 discard를 하면 되지만 command line interface에서는 어떻게 해야 할지 잘 모를때가 많다. 각 상황별로 수정 내역을 되돌리는 법을 알아보자. 1. git add 명령을 하기 이전(stage에 올리지 않은 경우) 1.1 repository 내 모든 수정 되돌리기 $ cd {repository_root_dir} $ git checkout . 1.2 특정 폴더 아래의 모든 수정 되돌리기 $ git checkout {dir} 1.3 특정 파일의 수정 되돌리기 $ git checkout {file_name} 2. git add 명령으로 stage에 올린 경우 $ git reset 3...
쓸데없는 폴더가 포함되었을 때 제거방법 git을 사용하다보면 무심결에 필요없는 폴더가 버전관리 될 때가 있다. 예를들어 IntelliJ를 사용하면 자동생성되는 .idea/ 폴더가 있는데 .gitIgnore에 미리 추가하지 않고 무심결에 push를 해 버리면 commit 할 때마다 .idea/ 폴더 내에 변경점을 같이 커밋해 버리게 된다. 나도 커밋하고, 동료도 커밋하고 .idea/ 는 항상 변경이 일어나게 되어 버린다. 이것을 나중에 눈치채고 제거하려면 .idea/ 를 .gitignore에 추가하고, .idea/를 미리 다른 곳에 복사해 두고 .idea/ 폴더를 삭제한 후 commit하고 다시 .idea를 원복하는 삽질을 하게 된다. 아래 git 명령어로 삽질하지 맙시다. .gitignore에 버전관리 제외할 폴더나 파일 추가 git rm -..
[Gitlab] git push -u origin master permission denied gitlab에서 처음 프로젝트 생성을 하는 경우 아래와 같은 Command line instructions 에 따라서 입력한다. 마지막 단계에서 git push -u origin master 를 하는데 permission denied가 발생할 때가 있다. [원인] 1. git 계정이 권한이 아닌 계정인 경우 해결 방법 1. 커맨드창 계정을 root 계정으로 변경한다. (git bash로 작업하는 경우 발생할 수 있다.) 2. 커맨드에 연결된 계정에 root 권한을 준다 3. cmd prompt로 작업 → push 할때 로그인 창이 팝업으로 뜬다. 2. ssh문제인 경우 해결 방법 1. remote를 http 로 연결한다. · SSH 형태 : git@ip_address/root/project_name · ..