Git
影分身術!
# 新增分支
$ git branch cat
# 砍分隻
$ git branch -d dog
# 所有分支都可以刪,沒有說 master 就比較偉大,他只是預設主線
# 前提:你不能刪掉目前所在branch
# 切換分支
$ git checkout cat
# 如果dog分支不存在,建好再切過去
$ git checkout -b dog
分支就像貼紙
# 同源:快轉模式合併 fast-forward
$ git checkout master
$ git merge cat
分支就像貼紙
# 我不要用快轉模式
$ git merge cat --no-ff
其實git會提醒你,還沒合併喔,確定嗎?
刪除分支並不會造成那些commit消失
$ git branch
cat
* master
$ git branch -d cat
error: The branch cat is not fully merged.
$ git branch -D cat
Deleted branch cat (was 6fb6143)
# 活過來!
$ git branch new_cat 6fb6143
$ git branch
* master
cat
$ git merge new_cat
# 如果SHA-1沒記下來怎辦?
$ git reflog
其實你合併的不是分支,是合併分之所指向的那個commit
移花接木
$ git rebase dog
# 怎樣取消rebase?
$ git reset HEAD^ # 並不會回到原來rebase前的狀態
# 方法一:
$ git reflog
$ git reset 6fb6143 --hard
# 方法二(相對簡單):
$ git reset ORIG_HEAD
# 使用merge的合併造成衝突
$ git merge cat
$ vi index.html
# 如果是使用rebase的合併造成衝突?
$ git rebase cat
$ vi index.html
$ git add index.html
$ git rebase --continue
# 如果不是文字檔的衝突?(圖片檔等等)
$ git merge cat
$ vi index.html
$ git status
$ git checkout cute_animal.png --theirs # 用他們的
$ git checkout cute_animal.png --ours # 用我們的
$ git branch
cat
* dog
master
$ cd .git
$ open .
$ cat HEAD
# 所謂分支,其實就是某一個commit的SHA-1值
$ cat refs/heads/dog
$ cat refs/heads/cat
$ cat refs/heads/master
$ cat .git/HEAD
# HEAD 也有縮寫
$ git reset HEAD^
# 可以換成:
$ git reset @^
ORIG_HEAD是什麼?當你危險操作的前一個HEAD的值
$ git checkout 節點
$ git checkout -b bird
$ touch bird1.html
$ git add bird1.html
$ git commmit -m "add bird 1"
Familiarity with Rakuten Travel QA Workflow (Hands-On Experience)
Dec 4, 2024A compilation of essential vocabulary gathered during my internship at Rakuten, with a sum of 94.
Mar 21, 2024在 Ruby 裡,幾乎什麼東西都是物件
Mar 1, 2024create web applications in Ruby
Mar 1, 2024or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up