git
-
커밋 삭제와 수정git 2018. 3. 24. 23:59
원격 저장소에 있는 커밋 메세지를 재수정하고 싶을 때(커밋을 아예 삭제하는 경우) $ git reflog $ git reset HEAD@{n} $ git commit --amend -m "변경된 메세지" $ git push origin +브랜치이름 '+브랜치이름'의 경우 강제로 원격에 푸시하므로 팀원과 공동작업일 경우 주의. reset에 --hard 옵션은 n번째 HEAD이후의 커밋들을 다 삭제한다. --soft 옵션은 삭제하지 않고 수정하고 싶은 커밋의 메세지만 수정하고 싶을 때 주로 사용.
-
원격저장소에 파일 없애기git 2018. 3. 24. 23:57
.gitignore 파일이 로컬에서 갱신되더라도 원격 저장소에서는 추적되지 않는 파일이므로 원격저장소에 반영되지 않는다. 원격 저장소에 원치 않는 파일이나 폴더가 올라가 있을 때는 unstage 하고, 커밋한 다음에 푸시해주면 된다. $ git rm -r --cached 숨길 디렉토리 이름 $ git commit -m 커밋 메세지 $ git push origin 브랜치 푸시하더라도 저장소 히스토리에는 이전에 올라가있던 전적이 남고, 다른 팀원이랑 같이 작업중이거나 여러 대 pc에서 작업 중이라면 히스토리는 없애지 않는 게 좋다. 그래도 히스토리를 없애고 싶다면 $ git filter-branch 명령어를 사용한다.
-
Pull Request & Mergegit 2018. 3. 24. 23:54
Bitbucket에서 제공하는 Pull Request를 처음 알고 쓰기 시작했다. (Bitbucket-PullRequest) 쓰는 도중에 테스트 서버 유지 용도로 쓰는 develop브랜치를 feature/#3브랜치에서 merge해버렸다. 그러고 나서 feature/#3 에서 feature/#4를 만들어서 그 브랜치의 커밋을 develop 브랜치에 푸시 하려고 했고, 안되서(develop 브랜치에 다른 사람의 새로운 커밋이 있었을 것, 그래서 pull을 했는데 Already-up-to-date가 떴다.) force 옵션으로 develop 브랜치에 강제 푸시를 했더니 다른 사람이 작업했던 커밋을 모두 지워버리는 불상사가 생겼다. git 에서 --force는 리모트 저장소에 다른 팀원이 푸시한 내용을 지워버리..