어제 git init
부터 git push
까지 했다.
현재의 git 상태를 확인해보자.
$ git status
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
그럼 어제까지 했던 것을 확인해보자.
$ git log
commit [checksum_SHA-1] (HEAD -> master, origin/master, origin/HEAD)
Author: [your_name] <[your_email]>
Date: Sun Apr 5 01:17:35 2020 +0900
[commit_message]
commit [checksum_SHA-1]
Author: [your_name] <[your_email]>
Date: Sun Apr 5 01:11:43 2020 +0900
[commit_message]
가장 최근에 한 일이 가장 위에 뜬다.
checksum의 SHA-1해시에 대해서는 Git의 무결성을 참고하면 이해가 될 것이다.
더 자세히 각 commit
마다 어떤 차이가 있는지 알고 싶다면
$ git log -p #혹은
$ git log --patch
를 입력하면 된다.
현재 remote명은 origin, branch명은 master이며 아무것도 commit되지 않은 상태라는 것을 알 수 있다.
새 branch를 만들어 그 branch로 checkout할 것이다.checkout
이라는 것은 branch를 변경한다는 뜻이다.
git checkout
의 설명서를 보면
$ git checkout --help
git checkout -b|-B <new_branch> [<start point>]
Specifying -b causes a new branch to be created as if git-branch(1) were called and
then checked out. In this case you can use the --track or --no-track options, which
will be passed to git branch. As a convenience, --track without -b implies branch
creation; see the description of --track below.
If -B is given, <new_branch> is created if it doesn't exist; otherwise, it is reset.
This is the transactional equivalent of
$ git branch -f <branch> [<start point>]
$ git checkout <branch>
that is to say, the branch is not reset/created unless "git checkout" is successful.
라고 되어있다.-b
옵션을 사용하면 새로운 branch를 만들 수 있는데 만약 -B
옵션을 사용하면 해당 branch가 존재하지 않을 경우에는 입력한 이름으로 새로운 branch를 만들지만 이미 존재하고 있는 경우에는 reset 된다고 한다.
$ git checkout -b [new_branch_name]
$ git status
On branch new_branch
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: sample.txt
checkout하기 전에 sample.txt에 새로운 문장을 추가했더니 빨간 색으로 modified: sample.txt
라고 뜬다.git add sample.txt
를 하면 초록색으로 modified: sample.txt
가 출력된다.
$ git commit -m "modify"
라고 commit
했더니 log에서 sample.txt에 대한 내용은 사라졌다.
이제 push
를 할 때에는 새 branch이름을 적어주어야 한다.
$ git push origin [new_branch_name]
branch가 master일 때 sample.txt에는 Hello github, this is sample.txt.
만 적혀있고 new_branch일 때 sample.txt에는 Hello github, this is sample.txt. And I'll checkout branch.
라고 적혀있다.
new_branch의 변경 사항을 master에 merge할 것이다.
$ git checkout master
$ git merge new_branch
어느 branch에서나 sample.txt에는 Hello github, this is sample.txt. And I'll checkout branch.
가 적혀있는 것을 확인할 수 있다.
'command line 노트' 카테고리의 다른 글
이미 push 한 commit 을 되돌리기 (0) | 2020.07.23 |
---|---|
갑자기 터미널에서 git 권한이 없다며 push에 실패할 때 (0) | 2020.05.06 |
iterms2에서 repository clone해서 commit, push까지 연습하기 (1) | 2020.04.05 |
pip으로 install했던 것들 리스트 출력해서 새 맥북 setup하기 (0) | 2020.04.01 |
git에 push할 때 dyld: Library not loaded가 뜬다면 (0) | 2020.02.17 |