git 8

[git] merge 충돌 에러

* 에러 내용: 두 가지 경우가 있었다. (1) error: Your local changes to the following files would be overwritten by merge: ~file 리스트~ Please commit your changes or stash them before you merge. (2) error: The following untracked working tree files would be overwritten by merge: ~file 리스트~ Please move or remove them before you merge. Aborting 기존에 내가 바꾼 내용과 merge할 commit에서 바뀐 내용이 일치하지 않았기 때문이다. * (1) 에러 해결: git st..

git 2022.05.18

[git] remote repo commit 삭제하기

삭제하고 싶은 commit을 이미 push로 remote 저장소에 올려버렸을 때 시간을 되돌리는법. 1. git log local에서 먼저 돌아가고 싶은 commit을 찾는다. 2. git reset --hard HEAD~1 뜻: 가장 최근의 커밋 하나를 삭제한다. HEAD~n에서 n은 가장 최근의 커밋부터 몇 개를 삭제할지를 나타낸다. HEAD~2는 두 개의 커밋을 삭제. 삭제 후 git log를 확인하면 HEAD가 바뀐 것을 확인할 수 있다. >>를 캡쳐하려고 했는데 깜빡했다 ㅠㅠ 삭제할 커밋 수가 많지 않다면 하나씩 삭제하고 log를 확인하며 삭제를 진행하는 것이 안전하다. 3. git push -f fast forward 관계가 아닌 push이기 때문에 강제로 (--force) 내 원격 저장소로 ..

git 2022.03.21

[git] git status, staging area

Git status, staging area 여러 경우를 해석/정리해보자! 1. 파일 수정하고 add/commit 아무 것도 하지 않은 경우 changes not staged for commit: staging area에 올라가지 않은 수정된 파일들 빨간색으로 표시. add를 하라고 추천하는 메세지가 따라온다. 2. git add . 이후 git add로 staging area에 올라간 파일들 초록색으로 표시. 수정/삭제/추가의 여부도 앞에 modified:와 같이 표시된다. 3. git reset git reset으로 stage area에 올라간 파일을 다시 내리면 (즉, git add 취소) unstaged file으로 돌아간다. GIT에 대한 더 다양한 정보는 git docs 참고 https://d..

git 2022.03.21

[git] Fork 협업 플로우

나중에 또 까먹지 않기 위해서 협업 플로우를 정리해보자! 1. Fork&clone: 프로젝트의 최종 결과물이 될 upstream repo를 각자의 remote repo로 fork해오고, local로 clone한다. 2. Push & merge: upstream으로의 merge 는 pull request(PR)으로 이루어진다. 3. Fetch upstream & merge: local에서 개인적으로 작업 중 upstream에 새로운 commit이 merge되었다면, 내 repo를 upstream의 최신 상태로 업데이트할 필요가 있다. 나는 merge를 미루면서 코드를 수정하다가 나중에 push할 때 충돌이 일어나는 상황을 방지하기 위해서 upstream에 새로운 커밋이 push될 때 마다 바로바로 merg..

git 2022.03.21

[git] Forked repo에서 origin repo pull하기

협업을 하며 origin repo를 내 remote repo로 fork해오고, local으로 clone해서 작업했다. 그 후 origin repo의 내용이 변경되어 local으로 pull을 해야 하는 상황이 왔다. 1. upstream remote repo 정의 먼저 fork의 remote upstream repository를 정의해주어야 한다. (한 번만 하면 되는 작업) git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git git remote add upstream (git 주소).git 여기서 git 주소는 original repo의 주소이다. 2. 현재 git에 등록된 remote repo list 확인 ..

git 2022.03.08

[git] .gitignore 파일/폴더 ignore하기

git에 add, commit 시 추적하지 않았으면 하는 폴더, 파일 확장자, 특정 파일이 있다면 최상위 폴더에 .gitignore 파일을 생성하여 설정해줄 수 있다. # 1. ignore folder: 폴더 무시 ImageNet/myfolder/ Folder/ # 2. ignore certain extensions: 확장자 무시 *.pth *.log # 3. ignore file: 파일 무시 ImageNet/log.txt gitignore 파일 내부에는 위와 같은 방법으로 무시하고자 하는 폴더/확장자/파일을 정의하면 된다. 이 때, ignore에 추가하기 전에 이미 push된 파일이나 폴더들은 그 후에 ignore하여도 적용되지 않는다. 따라서 commit, push 전에 cache를 지워주어야 한다...

git 2022.03.04

[git] reset으로 commit 삭제하고 복구하기

local에만 commit을 쌓아두다가 한꺼번에 remote로 push를 하려고 하니, 이전 commit에서 큰 파일 때문에 모두 push가 되지 않는 초유의 사태가 발생했다. 먼저, 삭제하는 방법 1. commit log 확인하기 git log commit 이름과 날짜로 어느 때로 돌아가야 할 지 확인한다. 로그 창을 벗어나서 다시 터미널로 돌아가고 싶다면 Q 누르면 됨. 2. commit 삭제 최신 순으로 하나씩 log가 삭제된다. git log로 잘 확인하면서 하나씩 삭제해야 함. git reset HEAD^ 이런 방식으로 오류가 생긴 commit까지 삭제한 후 다시 commit하면 됨! 하지만 어림도 없지, 파일 삭제할 때 permission denied 오류가 떴다. sudo chown -R y..

git 2022.03.04

[git] remote master->branch 만들기

Branch를 사용하면 같은 소스코드를 각자의 독립적인 작업 영역에서 원하는 대로 수정할 수 있다. 다른 사람의 브랜치의 영향을 받지 않으며 동시에 같은 소스코드로 작업을 할 수 있다. 0. Repo Fork (옵션) (협업의 경우) 메인 Repo 내 Repo로 복제 github의 fork 버튼을 눌러서 간단하게 수행할 수 있다. 1. Master Repo Clone git clone [url] master repository를 내 local 저장소로 clone해온다.(복제) clone한 폴더 내에서 git branch 하는게 안정적. https://velog.io/@imacoolgirlyo/Git-fork%EC%99%80-clone-%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90-5..

git 2021.10.07