Git
Git의 원리] 6. git remote, origin, push
Fastlane
2022. 9. 7. 17:31
728x90
반응형
$ git init
Initialized empty Git repository in C:/Project/git_test/.git/
git 초기화를 하면 생성되는 .git파일의 config파일을 확인해보자.
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
f1.txt파일을 생성해서 저장 commit하고, git remote add [원격저장소] [remote repository url] 명령어를 통해서 원격저장소를 연결하고 원격저장소 이름과, url을 지정한다.
$ vim f1.txt
$ git add f1.txt
warning: LF will be replaced by CRLF in f1.txt.
The file will have its original line endings in your working directory
$ git commit -m 1
[master (root-commit) b3e2e28] 1
1 file changed, 1 insertion(+)
create mode 100644 f1.txt
$ git remote add origin https://github.com/hello/repo.git
이때 config 파일을 확인해보자. origin이라는 remote에 대한 정보가 추가되었다.
[remote "origin"]
url = https://github.com/hello/repo.git
fetch = +refs/heads/*:refs/remotes/origin/*
local repository commit을 remote repository로 push해보자.
# origin master branch와 연결하여 push한다.
$ git push --set-upstream origin master
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 197 bytes | 49.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/BigExecution/repo.git
* [new branch] master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.
이때 config 파일을 확인해보자. master branch에 대한 정보가 추가되었다.
master branch는 origin에 연결된다.
[branch "master"]
remote = origin
merge = refs/heads/master
그리고 refs 밑에 remotes/origin/master 파일이 추가된다.
내용은 origin으로 push한 commit hash id가 들어있다.
refs 밑에 head/master 파일에는 local repository의 마지막 commit hash id가 들어있다.
# 지역저장소 master branch의 commit과 원격저장소 origin의 master branch의 commit이 같다.
$ git log --decorate --graph
* commit b3e2e2895ac5db3896a1d4fbbedfdd23ded778b8 (HEAD -> master, origin/master)
Author:
Date: Wed Sep 7 16:20:11 2022 +0900
1
# f1.txt 파일을 수정해서 commit을 2개 추가해보자.
$ vim f1.txt
$ git commit -am 2
warning: LF will be replaced by CRLF in f1.txt.
The file will have its original line endings in your working directory
[master 030889f] 2
1 file changed, 1 insertion(+)
$ vim f1.txt
$ git commit -am 3
warning: LF will be replaced by CRLF in f1.txt.
The file will have its original line endings in your working directory
[master 61c5cf1] 3
1 file changed, 1 insertion(+)
# 지역저장소 master는 2번의 commit을 추가로 했지만 push하지 않았기 때문에
# origin master가 가리키는 commit과 다르다.
$ git log --decorate --graph
* commit 61c5cf1c8345f236f5c2a5e0f2c31ad293295fd6 (HEAD -> master)
| Author:
| Date: Wed Sep 7 17:04:41 2022 +0900
|
| 3
|
* commit 030889f87fe150baa4a2b79cf5c900ab4a07e597
| Author:
| Date: Wed Sep 7 17:04:13 2022 +0900
|
| 2
|
* commit b3e2e2895ac5db3896a1d4fbbedfdd23ded778b8 (origin/master)
Author:
Date: Wed Sep 7 16:20:11 2022 +0900
1
아래 두 파일의 내용이 달라진다.
refs/head/master : 61c5cf1c8345f236f5c2a5e0f2c31ad293295fd6
refs/remotes/origin/master : b3e2e2895ac5db3896a1d4fbbedfdd23ded778b8
$ git push
Enumerating objects: 8, done.
Counting objects: 100% (8/8), done.
Delta compression using up to 12 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (6/6), 425 bytes | 85.00 KiB/s, done.
Total 6 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/hello/repo.git
b3e2e28..61c5cf1 master -> master
$ git log --decorate --graph
* commit 61c5cf1c8345f236f5c2a5e0f2c31ad293295fd6 (HEAD -> master, origin/master)
| Author:
| Date: Wed Sep 7 17:04:41 2022 +0900
|
| 3
|
* commit 030889f87fe150baa4a2b79cf5c900ab4a07e597
| Author:
| Date: Wed Sep 7 17:04:13 2022 +0900
|
| 2
|
* commit b3e2e2895ac5db3896a1d4fbbedfdd23ded778b8
Author:
Date: Wed Sep 7 16:20:11 2022 +0900
1
728x90
반응형