実行前の状態
自分が README.md を 1 回コミットして
このorigin.git) で、friend) で
ターミナル
git init -q --bare -b main origin.git
git init -q -b main hello
cd hello
echo "# hello" > README.md
git add README.md
git commit -q -m "README を作る"
git remote add origin ../origin.git
git push -q -u origin main
cd ..
git clone -q origin.git friend
cd friend
echo "friend" > friend.txt
git add friend.txt
git commit -q -m "friend.txt を足す"
git push -q
cd ../hello最小の例と結果
ターミナル
git pullFrom ../origin
a1b2c3d..9f8e7d6 main -> origin/main
Updating a1b2c3d..9f8e7d6
Fast-forward
friend.txt | 1 +
1 file changed, 1 insertion(+)
create mode 100644 friend.txtFrom ../originは取り込み元です。 main -> origin/mainは、リモートの main の 新しい 分を、 手元に ある origin/main (リモートの 様子の 控え) へ 写したという 意味です。 Fast-forwardは、手元に 別の コミットが 無かったので、 ブランチを そのまま 前へ 進めたという 意味です。 friend.txt | 1 +は、取り込んだ コミットで 足された物です。
成功の確認
履歴の
ターミナル
git log --oneline9f8e7d6 friend.txt を足す
a1b2c3d README を作るターミナル
git status -sb## main...origin/maingit status -sb の 1 行目に [behind 1] が
構文と 主要オプション
| 書き方 | すること |
|---|---|
git pull | 送り先を |
git pull --ff-only | 前へ |
git pull --no-rebase | 手元と |
git pull --rebase | 手元の |
git pull origin <ブランチ名> | 指定した |
git pull は、git fetch と、git merge を--rebase をpull.rebase のgit merge のgit rebase がgit fetch だけを
失敗時の戻し方
pull は、ORIG_HEAD という
ターミナル
git reset --hard ORIG_HEAD--hard は、git status で
衝突が出たとき
取り込みのgit add し、git commit で--rebase でgit rebase --continue で
ターミナル
git merge --abortgit pull --rebase でgit rebase --abort を
よくある疑問
You have divergent branches と 出て、 止まります
手元にも
ターミナル
git pullfatal: Need to specify how to reconcile divergent branches.この前にhint の
2 つをgit pull --no-rebase とgit pull --rebase です。
pull と fetch は 何が 違いますか
fetch は、
There is no tracking information for the current branch と出ます
そのgit pull origin main のように、
