Info |
---|
Git 사용 시나리오별로 해결 방법을 연구 합니다. |
Image Removed
Git Branch Log를 그래픽으로 보고 싶어요.
Code Block |
---|
$ git log --branches --graph --decorate --oneline
|
Image Removed
Git Add 를 취소하고 싶어요.
Info |
---|
|
git restore --staged (filename)
|
Git Commit을 취소하고 싶어요.
Info |
---|
|
Info |
---|
reset 옵션 –soft : index 보존(add한 상태, staged 상태), 워킹 디렉터리의 파일 보존. 즉 모두 보존. –mixed : index 취소(add하기 전 상태, unstaged 상태), 워킹 디렉터리의 파일 보존 (기본 옵션) –hard : index 취소(add하기 전 상태, unstaged 상태), 워킹 디렉터리의 파일 삭제. 즉 모두 취소. |
- commit은 취소하고 파일은 stage상태로
- commit은 취소하고 파일은 unstage상태로 (default)
- git reset --mixed HEAD^
- git reset HEAD^
- commit은 취소하고 해당파일을 unstage상태로 워킹디렉터리에서 삭제
|
Git Push를 취소하고 싶어요.
Info |
---|
|
Info |
---|
reset 옵션 –soft : index 보존(add한 상태, staged 상태), 워킹 디렉터리의 파일 보존. 즉 모두 보존. –mixed : index 취소(add하기 전 상태, unstaged 상태), 워킹 디렉터리의 파일 보존 (기본 옵션) –hard : index 취소(add하기 전 상태, unstaged 상태), 워킹 디렉터리의 파일 삭제. 즉 모두 취소. |
- 워킹 디렉토리의 commit을 되돌린다.
- git reset HEAD^ #최근의 커밋을 취소함
- git reset [commit id] #원하는 시점으로 워킹디렉토리를 되돌린다.
- 돌려진 상태에서 다시 commit한다.
- git commit -m "commit message"
- 원격저장소에 강제로 push 한다.
- git push origin branchname -f
- git push origin branchname --force
- git push origin +branchname
|
Git commit N개를 합치고 싶어요.
...
$ git rebase -i HEAD~2
pick 004644d first commit
pick ae53bdf second commit --> squesh ae53bdf second commit
:wq
Patch 파일을 만들고 싶어요.
Info |
---|
|
- commit-id에서부터 현재까지의 commit을 각patch파일로 생성 (commit 마다 patch파일 생성)
- git format-patch [commit-id]
- git format-patch -2
|
전달받은 Patch파일을 commit하고 싶어요.
Commit하기전 파일을 비교해서(diff) Patch 파일을 만들고 싶어요.
Info |
---|
|
- git diff > patch-filename
|
두 Branch를 합치고 싶어요.
Info |
---|
|
- issue1 브렌치를 master 브랜치로 병합
- git checkout master
- git merge issue1
- merge 확인
git log --branches --graph --decorate --oneline
|
개발을 하고 있었는데, 앗 새로운 Branch에서 작업 하고 싶어요.
Info |
---|
|
- Commit하기전 개발하고 있던 파일들이 새로운 브랜치로 옮겨 집니다.
- git checkout -b new-branch
|
개발을 하고 commit을 했는데, 새로운 branch로 작업내용을 옮기고 싶어요.
Info |
---|
|
- 새로운 Branch를 만들고, 이전 branch의 작업내용을 reset합니다.
- git checkout -b new-branch
- git checkout develop
- git reset --hard HEAD~1
|
Git Commit Global 계정을 설정/변경/삭제 하고 싶어요.
Code Block |
---|
## 설정된 정보 보기
$ git config --list
http.sslbackend=openssl
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
diff.astextplain.textconv=astextplain
core.autocrlf=true
core.fscache=true
core.symlinks=false
user.name=Sanse
user.email=sooabia@gmail.com
core.editor="C:\Users\Sanse\AppData\Local\Programs\Microsoft VS Code\Code.exe" --waitfilter.lfs.process=git-lfs filter-process
filter.lfs.required=true
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
push.default=simple
## 설정/변경 하기
$ git config --global user.name "Sanse"
$ git config --global user.email sanse@gmail.com
## 삭제 하기
$git config --unset --global user.name
$git config --unset --global user.email |
Git Commit Message를 수정하고 싶어요.
Code Block |
---|
## 방금전 Commit한 메세지 수정
$ git commit --amend -m "{변경할 메시지}"
## 과거 Commit한 메세지 수정 (예: CommitID-3만 수정)
$ git log
CommitID-5
CommitID-4
CommitID-3
CommitID-2
CommitID-1
$ git rebase -i {CommitID-3}
------ EDITER --------
pick CommitID-5
pick CommitID-4
pick CommitID-3
==>
pick CommitID-5-message
pick CommitID-4-message
edit CommitID-3-message
------ //EDITER --------
# SAVE
# Git 설명이 아래와 같이 출력되요.
You can amend the commit now, with
git commit --amend
Once you are satisfied with your changes, run
git rebase --continue
$ git commit --amend
------ EDITER --------
CommitID-3-message --> {변경할 Commit 메세지}
------ //EDITER --------
# SAVE
$ git rebase --continue
Successfully rebased and updated refs/heads/develop. |
Commit 한 Author을 변경하고 싶어요.
Code Block |
---|
## 방금 Commit한 Author 변경하기
$ git commit --amend --author="{변경할이름}<변경할이메일>"
## 과전에 Commit한 Author 변경하기 (예: CommitID-3의 Author수정)
$ git log
CommitID-5
CommitID-4
CommitID-3
CommitID-2
CommitID-1
$ git rebase -i {CommitID-3}
------ EDITER --------
pick CommitID-5
pick CommitID-4
pick CommitID-3
==>
pick CommitID-5-message
pick CommitID-4-message
edit CommitID-3-message
------ //EDITER --------
# SAVE
# Git 설명이 아래와 같이 출력되요.
You can amend the commit now, with
git commit --amend
Once you are satisfied with your changes, run
git rebase --continue
$ git commit --amend --author="{변경할이름}<변경할이메일>"
$ git rebase --continue
Successfully rebased and updated refs/heads/develop. |