11일차(2) 및 12일차: Git
7880 단어 Git
사용 환경
호스트 운영 체제: Windows10 홈 페이지
가상 환경 운영 체제: Ubuntu Bento/Bionic
1단계
가상 환경에 Git가 있는지 확인
terminalwhich git
Github에 저장소 만들기
로컬 저장소 만들기
다음 코드는 Github에서 지시한 것입니다.
terminalecho "# self-repo" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/oriverk/self-repo.git
git push -u origin master
# 実行結果
# Read.mdファイル作成
# github上のリポジトリにRead.mdファイルがプッシュ。
# Branch 'master' set up to track remote branch 'master' from 'origin'.
git 원격 확인
git remote -v
# 実行
origin https://github.com/oriverk/self-repo.git (fetch)
origin https://github.com/oriverk/self-repo.git (push)
git log
git log
# 実行
commit e2282c28ea661e588143201d9109ed9572f3d276 (HEAD -> master, origin/master)
Author: oriverk <[email protected]>
Date: Wed Mar 20 22:09:38 2019 +0000
first commit
스스로 푸시 해보세요.
terminal# ファイル作成
touch tes1.txt
touch tes2.txt
# git add
git add tes1.txt
git add tes2.txt
# git commit
git commit -m "second commit"
# 実行結果
[master 5b5b220] second commit
2 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 tes1.txt
create mode 100644 tes2.txt
# git log
git log
# 実行結果
commit 5b5b220fce07f6772b9aeeca1fe60d9ba0e63c74 (HEAD -> master)
Author: oriverk <[email protected]>
Date: Wed Mar 20 22:25:49 2019 +0000
second commit
diff --git a/tes1.txt b/tes1.txt
new file mode 100644
index 0000000..e69de29
diff --git a/tes2.txt b/tes2.txt
new file mode 100644
index 0000000..e69de29
#githubに反映
git push origin master
# 実行結果
Counting objects: 3, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 283 bytes | 141.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/oriverk/self-repo.git
e2282c2..5b5b220 master -> master
확실히 반영되었다
상호 작용 모드
적당히 서류를 만들다
terminaltouch tes3.txt
touch tes3.txt
상호 작용 모드 호출
terminalgit add -i
# 対話モード
*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
# 1:ステータス確認 2:ファイルをステージ 3:ステージを取り消す
# 4:一度もトラッキングされていない新規ファイルをステージする
# 5:部分的にステージ 6:ステージしたファイルの差分確認
# 2つのファイルをトラッキングし、tes2.txtのステージを取り消し、状態を確認
*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now> 4
1: tes3.txt
2: tes4.txt
Add untracked>> 1-2
* 1: tes3.txt
* 2: tes4.txt
Add untracked>>
added 2 paths
*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now> 3
staged unstaged path
1: +0/-0 nothing tes3.txt
2: +0/-0 nothing tes4.txt
Revert>> 2
staged unstaged path
1: +0/-0 nothing tes3.txt
* 2: +0/-0 nothing tes4.txt
Revert>>
note: tes4.txt is untracked now.
reverted 1 path
*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now> 1
staged unstaged path
1: +0/-0 nothing tes3.txt
# githubに反映
git commit -m "git add from -i option
git push origin master
업데이트 후 단계 선택, 푸시
tes1.txt 편집cat /etc/passwd > test1.txt
cat /etc/nsswitch.conf >> test1.txt
업데이트 단계
git add -i
# 5を選択肢、tes1.txtを選択
# 更新分が表示される
# y:ステージする n:ステージしない q:対話モードを終了
Stage this hunk [y,n,q,a,d,e,?]? y
# githubに反映
git commit -m "cat pass"
git push origin master
파일로 돌아가기
삭제된 파일로 돌아가기
# ファイルを削除
rm tes1.txt
# 元に戻す。直近の"cat pass"のバージョンが戻った
git checkout tes1.txt
버전 지정
# git logの結果
commit 5b5b220fce07f6772b9aeeca1fe60d9ba0e63c74
Author: oriverk <[email protected]>
Date: Wed Mar 20 22:25:49 2019 +0000
second commit
# "second commit"のバージョンのtes1.txtに戻してみる
git checkout 5b5b220fce07f6772b9aeeca1fe60d9ba0e63c7 tes1.txt
최신 버전으로 복원
git reset --hard HEAD
# 実行
HEAD is now at 48bfffa cat pass
# 最新版なので、tes1.txtも"cat pass"のバージョンに戻ってる
브랜치 확인
현재 분기 확인
git branch -v
#実行
* master 48bfffa cat pass
새 브랜치 만들기
git checkout -b other-bran
파일 편집,push toother-brancat /etc/mysql/conf.d/mysql.cnf >> tes1.txt
cat /etc/apache2/conf-available/javascript-common.conf >> tes2.txt
cat /etc/passwd >> tes3.txt
cat /etc/nsswitch.conf >> tes4.txt
git commit -m :"for other-bran"
git push origin other-bran
pull request
other-bran 지점에서master 지점까지의 당김 요청
원격 변경 사항을 로컬에 반영
# masterブランチに移動
git checkout master
# 反映
git pull origin master
인증 키 만들기
push 때 매번 파스바 등이 들리니까 만들어야 돼요.git config --global --edit
# ユーザ名とメールを記入し、コメントイン
ssh에 키 만들기
이미 교실에서 만들었기 때문에 실행은 경로이다ssh-keygen -t rsa -b 4096 -C "自分の[email protected]"
cat ~/.ssh/id_rsa.pub
위의 cat 결과를 저장소 설정의 DeployKeys로 복사
이렇게 하면push는 파스바 등을 듣지 못한 상태에서 실행할 수 있다.
12일
분기 검사
현재 분기 확인
git branch -l
# 実行
master
* new-branch-jaji
현재 분기 및 정보 보기
git branch -v
# 実行
master 50dc6c7 added
* new-branch-joji be070c0 他のフィアルを追加
원격 브랜치 확인
git fetch
git branch -a
# 実行
vagrant@vagrant:~/cebu_lessons/mactan-repo$ git branch -a
master
* new-branch-joji
remotes/origin/master
remotes/origin/new-branch-joji
remotes/origin/test-repo
git fetch
원격 분기의 최신 이력 기록만 가져오기
이런 상태에서gitmerge를 하면gitpull과 같은 이력이 됩니다.
git pull = git fetch + git pull
Reference
이 문제에 관하여(11일차(2) 및 12일차: Git), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/OriverK/items/6180770c373314303794
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
which git
echo "# self-repo" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/oriverk/self-repo.git
git push -u origin master
# 実行結果
# Read.mdファイル作成
# github上のリポジトリにRead.mdファイルがプッシュ。
# Branch 'master' set up to track remote branch 'master' from 'origin'.
git remote -v
# 実行
origin https://github.com/oriverk/self-repo.git (fetch)
origin https://github.com/oriverk/self-repo.git (push)
git log
# 実行
commit e2282c28ea661e588143201d9109ed9572f3d276 (HEAD -> master, origin/master)
Author: oriverk <[email protected]>
Date: Wed Mar 20 22:09:38 2019 +0000
first commit
# ファイル作成
touch tes1.txt
touch tes2.txt
# git add
git add tes1.txt
git add tes2.txt
# git commit
git commit -m "second commit"
# 実行結果
[master 5b5b220] second commit
2 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 tes1.txt
create mode 100644 tes2.txt
# git log
git log
# 実行結果
commit 5b5b220fce07f6772b9aeeca1fe60d9ba0e63c74 (HEAD -> master)
Author: oriverk <[email protected]>
Date: Wed Mar 20 22:25:49 2019 +0000
second commit
diff --git a/tes1.txt b/tes1.txt
new file mode 100644
index 0000000..e69de29
diff --git a/tes2.txt b/tes2.txt
new file mode 100644
index 0000000..e69de29
#githubに反映
git push origin master
# 実行結果
Counting objects: 3, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 283 bytes | 141.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/oriverk/self-repo.git
e2282c2..5b5b220 master -> master
touch tes3.txt
touch tes3.txt
git add -i
# 対話モード
*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
# 1:ステータス確認 2:ファイルをステージ 3:ステージを取り消す
# 4:一度もトラッキングされていない新規ファイルをステージする
# 5:部分的にステージ 6:ステージしたファイルの差分確認
# 2つのファイルをトラッキングし、tes2.txtのステージを取り消し、状態を確認
*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now> 4
1: tes3.txt
2: tes4.txt
Add untracked>> 1-2
* 1: tes3.txt
* 2: tes4.txt
Add untracked>>
added 2 paths
*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now> 3
staged unstaged path
1: +0/-0 nothing tes3.txt
2: +0/-0 nothing tes4.txt
Revert>> 2
staged unstaged path
1: +0/-0 nothing tes3.txt
* 2: +0/-0 nothing tes4.txt
Revert>>
note: tes4.txt is untracked now.
reverted 1 path
*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now> 1
staged unstaged path
1: +0/-0 nothing tes3.txt
# githubに反映
git commit -m "git add from -i option
git push origin master
cat /etc/passwd > test1.txt
cat /etc/nsswitch.conf >> test1.txt
git add -i
# 5を選択肢、tes1.txtを選択
# 更新分が表示される
# y:ステージする n:ステージしない q:対話モードを終了
Stage this hunk [y,n,q,a,d,e,?]? y
# githubに反映
git commit -m "cat pass"
git push origin master
# ファイルを削除
rm tes1.txt
# 元に戻す。直近の"cat pass"のバージョンが戻った
git checkout tes1.txt
# git logの結果
commit 5b5b220fce07f6772b9aeeca1fe60d9ba0e63c74
Author: oriverk <[email protected]>
Date: Wed Mar 20 22:25:49 2019 +0000
second commit
# "second commit"のバージョンのtes1.txtに戻してみる
git checkout 5b5b220fce07f6772b9aeeca1fe60d9ba0e63c7 tes1.txt
git reset --hard HEAD
# 実行
HEAD is now at 48bfffa cat pass
# 最新版なので、tes1.txtも"cat pass"のバージョンに戻ってる
git branch -v
#実行
* master 48bfffa cat pass
git checkout -b other-bran
cat /etc/mysql/conf.d/mysql.cnf >> tes1.txt
cat /etc/apache2/conf-available/javascript-common.conf >> tes2.txt
cat /etc/passwd >> tes3.txt
cat /etc/nsswitch.conf >> tes4.txt
git commit -m :"for other-bran"
git push origin other-bran
# masterブランチに移動
git checkout master
# 反映
git pull origin master
git config --global --edit
# ユーザ名とメールを記入し、コメントイン
ssh-keygen -t rsa -b 4096 -C "自分の[email protected]"
cat ~/.ssh/id_rsa.pub
분기 검사
현재 분기 확인
git branch -l
# 実行
master
* new-branch-jaji
현재 분기 및 정보 보기
git branch -v
# 実行
master 50dc6c7 added
* new-branch-joji be070c0 他のフィアルを追加
원격 브랜치 확인
git fetch
git branch -a
# 実行
vagrant@vagrant:~/cebu_lessons/mactan-repo$ git branch -a
master
* new-branch-joji
remotes/origin/master
remotes/origin/new-branch-joji
remotes/origin/test-repo
git fetch
원격 분기의 최신 이력 기록만 가져오기
이런 상태에서gitmerge를 하면gitpull과 같은 이력이 됩니다.
git pull = git fetch + git pull
Reference
이 문제에 관하여(11일차(2) 및 12일차: Git), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/OriverK/items/6180770c373314303794텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)