-
GIT 자주 사용하는 명령어환경구축 2023. 2. 7. 00:40
git을 사용하다보면 사실 몇개 쓰지 않는다.
당연히 문제가 생기면 많은 명령어를 사용하지만 여기 적힌것만 알면 되는것 같기는하다.
1. git clone
예 git clone https://github.com/autonomousvision/transfuser.git
- 저장소 받을때 사용함.
2. git pull
- 최신 코드를 가져와서 merge함. 그러나 이 경우 잘못하면 conflict 날 수 있음.
이럴때는 아래 처럼 하면됨.
3. git checkout -B master origin/master
git checkout -B <my branch name> origin/<remote branch name>
이렇게 하면 remote에 있는 branch를 가져와서 overwrite함.
4. git reflog
- 내가 사용한 명령어로 되돌아가고 싶을때 사용.
- git은 내가 commit을 하던지 명령어를 치면 대부분 다 기억하고 되돌아갈 수 있음.
- 쳐보면 알수있음.
-되돌아 갈때는 아래 명령어를 사용하면됨.
5. git reset --hard HEAD@{1}
- git reset --hard xxxx을 하면 xxxx한것으로 갈 수 있음.
6. git log
- 단 축키를 설정해서 git lg 로 사용함.
7. git status
- 상태를 보기위해서 사용함.
- git st 로 사용함.
8. git commit --amend
- commit을 잘못했을때 --amend 명령을 사용해서 하면 commit이 증가하지 않고 overwrite이 됨.
- 단 push를 할때 강제로 해줘야함. git push -f 로...
9. git push
- remote에 내가 add 한 파일만 올리는것임.
10. git pull --rebase origin xxxxxx
- 이 명령어는 매주 중요한 명령어임.
- 사용 목적은 만일 내가 master에서 branch를 만든 후 commit을 했는데
master가 업데이트 되어서 업데이트 된 내용을 branch에 업데이트하고 싶다면
위 코드를 사용해야함.
절차는 아래와 같음.
git pull --rebase origin master
충돌 나면 수정 후
git add <file name>
git rebase --continue
다시 충돌 나면 수정 후
git rebase --continue....
여기서 gitlens를 사용한다. visual studio code에 깔린 gitlens를 이용하면
충돌 수정 및 add까지는 쉽게 할 수 있다.
rebase 전 rebase 후 <master>
|
|
a
| <branch>
a1 b1
| |
a2 - - b<master>
| <branch>
| b1
| |
a - - b
|
a1
|
a211. git stash / git stash list
임시로 저장하고 싶을때는 git stash
임시 저장 리스트를 보고 싶을때는 git stash list
가져오면서 삭제할때는 git stash pop
가져오고 유지하고 싶을때는 git stash apply
수정된 파일 보고 싶으면 git stash show
이렇게 사용하면 됨.
git stash --help 치면 잘 나와 있음.
해당 commit 은 git reset --hard stash@{0} 으로 해도 됨.
12. git patch 기능
수정사항이 생겼을때 파일을 전달할 수도 있지만 diff 만 들어 있는 patch를 적용해서 줄 수 도 있다.
- 12-1 patch 파일 만들때
git diff --no-prefix > [patchfile]
- 12-2 적용할 때
patch -p0 < [patchfile]
이런식으로 사용하면됨.
13. vim 을 기본 에디터로 사용
git config --global core.editor "vim"
위에 적은 내용 정도만 사용하면 git 사용하는는데 지장 없어 보임.
14. visual studio code를 diff로 설정하기
가장 좋은것은 beyod compare 인것 같지만 유료이기 때문에 무료로 쓸수 있는것은 vscode를 쓴것이 좋은것 같다.
[diff] tool = default-difftool [difftool "default-difftool"] cmd = code --wait --diff $LOCAL $REMOTE [merge] tool = vscode [mergetool "vscode"] cmd = code --wait $MERGED
#### 결론 ####
위처럼 셋팅을 하면 아래 같은 ~/.gitconfig는 아래와 같은 포멧을 가짐.
[alias] lg = log --oneline -5 --pretty=format:"%C(yellow)%h\\ %C(black)%ad%C(red)%d\\ %Creset%s%C(blue)\\ [%cn]" --decorate --date=relative st = status co = checkout [user] name = user name email = user@example.com [core] editor = vim [diff] tool = default-difftool [difftool "default-difftool"] cmd = code --diff $LOCAL $REMOTE [merge] tool = default-mergetool [mergetool "default-mergetool"] cmd = code --wait $MERGED
반응형'환경구축' 카테고리의 다른 글
환경 구축 category 의 목적.... (0) 2023.02.11 conda 설치 (0) 2023.02.11 nvidia-driver, cuda-driver,pytorch 설치 (0) 2023.02.11 리눅스 화면 캡쳐 (0) 2023.02.11 GIT 환경구축 (0) 2023.02.06