깃허브 데스크탑으로 프로젝트 관리하기 강의 오픈!! (인프런 바로가기)
참고
- git config 로 설정하기
- 로컬 저장소 생성하기
- 파일 commit 하기
- 로그 확인하기
- 작업 취소하기
- 브랜치 관리하기
- 수정 중인 파일 숨기기
- 체리픽으로 다른 코드 가져오기
git config 로 설정하기
git config --global user.name [이름]
git config --global user.email [이메일]
$ git config --global user.name "bloodstrawberry"
$ git config --global user.email "bloodstrawberry@gmail.com"
git config --list 로 결과를 확인할 수 있다.
$ git config --list
...
filter.lfs.required=true
user.name=bloodstrawberry
user.email=bloodstrawberry@gmail.com
core.autocrlf=input
core.editor=vi
list에 나오는 다른 설정도 마찬가지로 수정할 수 있다.
예를 들어 현재 core.editor는 vi인데, notepad로 변경하는 명령어는 다음과 같다.
git config --global core.editor "notepad++"
git config [설정] 으로 개별 결과를 확인할 수 있다.
$ git config user.name
bloodstrawberry
git config --unset --global [지우고 싶은 설정] 으로 해당 설정을 지울 수 있다.
$ git config --unset --global user.name
$ git config --list
...
filter.lfs.required=true
user.email=bloodstrawberry@gmail.com
core.autocrlf=input
core.editor=vi
로컬 저장소 생성하기
git init 으로 로컬 저장소에 git 저장소를 만들 수 있다.
$ mkdir git-command
$ cd git-command/
$ git init
ls 명령어로 .git 폴더가 만들어진 것을 알 수 있다.
$ ls -a
./ ../ .git/
git status 로 현재 git 저장소의 상태를 알 수 있다.
방금 저장소만 생성했으므로 아래의 상태가 나오게 된다.
$ git status
On branch master
No commits yet
nothing to commit (create/copy files and use "git add" to track)
vi로 text 파일을 추가하면 status가 변경되는 것을 알 수 있다.
$ vi text.txt
-> 내용 입력 후 저장.
$ git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
text.txt
nothing added to commit but untracked files present (use "git add" to track)
파일 commit 하기
commit을 하려면 git add [파일 이름] 을 먼저해야 한다. (스테이징, staging)
git add 이후에는 아무 로그도 나오지 않지만 git status 로 확인하면 상태가 변한 것을 알 수 있다.
이후에 git commit -m "commit message"를 입력하면 commit이 된다.
$ git add text.txt
$ git status
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: text.txt
$ git commit -m "commit!!"
git commit -m "commitgit log"
[master (root-commit) ff63286] commitgit log
1 file changed, 1 insertion(+)
create mode 100644 text.txt
한 번 commit된 파일은 git commit -am "message" 로 한 번에 add + commit이 가능하다.
하지만 새로운 파일은 불가능하며, 아래와 같은 에러가 발생한다.
$ git commit -am "commit2"
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
text2.txt
nothing added to commit but untracked files present (use "git add" to track)
commit 전에 git diff [파일 이름] 명령어로 파일에 어떤 변경 사항이 있는지 알 수 있다.
아래의 경우 hello라는 단어를 하나 더 추가했다는 것을 보여준다.
$ git diff text.txt
diff --git a/text.txt b/text.txt
index 0fc15fb..38df49a 100644
--- a/text.txt
+++ b/text.txt
@@ -1 +1 @@
-hello hello hello
+hello hello hello hello
로그 확인하기
git log 로 commit 로그를 확인할 수 있으며, 여러 옵션이 존재한다.
git log --oneline 은 한 줄로 요약해준다.
git log --graph 는 그래프를 만들어주고,
두 옵션을 같이 쓰면 git log --graph --oneline 요약된 그래프가 보인다.
$ git log
...
commit ff6328672afea998e583ce9077bb5a57ae851813
Author: bloodstrawberry
Date: Tue Mar 28 14:46:03 2023 +0900
commit
$ git log --oneline
ff63286 (HEAD -> master) commitgit log
$ git log --graph
* commit e33ec5df9032faa431fe0512d0d0f11bd0191d1b (HEAD -> master)
| Author: bloodstrawberry
| Date: Tue Mar 28 14:52:29 2023 +0900
|
| commit1
|
* commit 0de5b37b13cddd2805398c327dc8008310ae328b
| Author: bloodstrawberry
| Date: Tue Mar 28 14:52:07 2023 +0900
|
| commit1
|
* commit ff6328672afea998e583ce9077bb5a57ae851813
Author: bloodstrawberry
Date: Tue Mar 28 14:46:03 2023 +0900
commitgit log
$ git log --oneline --graph
* e33ec5d (HEAD -> master) commit1
* 0de5b37 commit1
* ff63286 commitgit log
작업 취소하기
깃허브 데스크탑 참고
- Commit 취소하기 (Amend, Undo, Revert)
- Revert와 Reset으로 과거 커밋으로 되돌아가기 (+ Git Bash)
git checkout 으로 commit하기 전 파일을 되돌릴 수 있다.
아래는 2개의 파일이 원래대로 돌아간 로그다.
$ git checkout
M text.txt
M text2.txt
git checkout [파일 이름] 을 하면 해당 파일만 되돌린다.
git checkout text.txt
Updated 1 path from the index
git revert [커밋 해시] 를 하면 해당 커밋을 취소하는 상태가 된다.
커밋을 취소할 때 conflict가 일어나면 아래의 로그가 발생한다.
$ git revert 864760c
Auto-merging text.txt
CONFLICT (content): Merge conflict in text.txt
error: could not revert 864760c... commit2
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
실제 파일을 열어보면 conflict가 난 것을 알 수 있다.
1 <<<<<<< HEAD
2 hello hello hello hello hello 234
3 =======
4 hello
5 >>>>>>> parent of 864760c... commit2
git reset [커밋 해시] 를 하면 해당 commit으로 돌아간다.
$ git log --oneline
45e1980 (HEAD -> master) text2 commit
e33ec5d commit2
0de5b37 commit1
ff63286 commitgit log
ff63286을 입력하면 아래와 같은 상태가 된다.
$ git reset ff63286
Unstaged changes after reset:
M text.txt
$ git log --oneline
ff63286 (HEAD -> master) commitgit log
브랜치 관리하기
git branch 로 현재 브랜치를 알 수 있다.
git branch [브랜치 이름] 으로 새 브랜치를 만든다.
git checkout [브랜치 이름] 으로 브랜치를 이동할 수 있다.
$ git branch
* master
$ git branch new_branch
$ git checkout new_branch
Switched to branch 'new_branch'
M text.txt
$ git branch
master
* new_branch
git branch -d [브랜치 이름] 으로 브랜치를 삭제할 수 있다.
삭제하려는 브랜치에서 checkout한 후, 다른 브랜치에서 삭제를 해야 한다.
병합하지 않은 브랜치를 삭제하려면 -D 옵션을 주면 된다.
$ git branch -d new_branch
Deleted branch new_branch (was ff63286).
수정 중인 파일 숨기기
참고
체리픽 다른 코드 가져오기
참고
- 체리픽으로 원하는 commit 가져오기 (git cherry-pick)
- 체리픽으로 변경된 commit만 반영하기 (git cherry-pick --strategy=recursive -X thiers)
'개발 > Git, GitHub' 카테고리의 다른 글
깃허브 - RESTful API로 파일의 SHA 구하기 (Find Github Files's SHA blob) (0) | 2023.06.23 |
---|---|
깃허브 데스크탑 - 유니티 프로젝트 추가하기 (new repository) (0) | 2023.04.03 |
깃허브 데스크탑 - 언리얼 프로젝트 추가하기 (new repository) (0) | 2023.03.25 |
깃허브 액션 - Node JS + jest를 GitHub Actions로 실행하기 (0) | 2023.03.22 |
깃허브 데스크탑 - 유니티 WebGL + React 라우터 적용하기 (0) | 2023.03.22 |
댓글