Git實戰命令總結

讓蛋蛋飛發表於2019-02-18

目錄

1. 建立本地專案並上傳GitHub

見筆者另一篇文章詳細介紹:juejin.im/post/5c6b72…

2. Git合併(merge)指定檔案或資料夾

需求: 將dev分支的部分檔案合併(merge)到master分支並推到遠端

原理: 先把master分支程式碼拷貝一份,成為一個新的臨時分支master-temp,然後把dev分支上需要合併過來的那部分檔案或資料夾替換到臨時分支master-temp上,然後把臨時分支master-temp合併到master分支,這時dev分支上要合併的部分檔案或資料夾已經成功的合併到master分支上了,最後再刪掉這個臨時分支master-temp,就OK了。

操作:

切換到master分支,並保持master分支最新

git checkout master
git pull
複製程式碼

基於master分支建立一個臨時分支master-temp,並切換到該分支上

git checkout -b master-temp
複製程式碼

用dev分支指定檔案或資料夾替換master-temp分支上相應的檔案

語法:
git checkout dev [目標資料夾或目標檔案]
舉例:
git checkout dev src/test/controller/

說明:執行完此命令,dev分支下的src/test/controller/資料夾就會替換master-temp分支下相應的資料夾
複製程式碼

將本次checkout內容提交到master-temp分支上

git commit -m "提交資訊到臨時分支master-temp上"
複製程式碼

切換到master分支

git checkout master
複製程式碼

比較臨時的master-temp分支與master分支的差異,是否就是想要合併的差異

git diff master-temp master
複製程式碼

合併master-temp分支到master分支

git merge master-temp
複製程式碼

將本地master分支推到遠端master分支,並刪除臨時master-temp分支(本地的)

git push origin master
## 檢視所有分支
git branch -a
## 刪除本地臨時分支master-temp
git branch -d master-temp
複製程式碼

3. Git 比較差異

說明:既支援對整個區域差異比較,也支援針對單個資料夾或檔案的差異比較。

## 比較工作區和暫存區的差異
git diff
## 針對某個資料夾或檔案,比較工作區和暫存區的差異
git diff [資料夾或檔案]
例如:git diff controller/

## 比較工作區和當前分支最新commit之間的差異
git diff HEAD
## 針對某個資料夾或檔案,比較工作區和當前分支最新commit之間的差異
git diff HEAD [資料夾或檔案]
例如:
git diff HEAD controller/ControllerTest.java

## 比較暫存區和上一個commit之間的差異
git diff --cached
## 針對某個資料夾或檔案,比較暫存區和上一個commit之間的差異
git diff --cached [資料夾或檔案]

## 比較各個分支之間的差異
git diff [first-branch] [second-branch]...[last-branch]
## 針對某個資料夾或檔案,比較各個分支之間的差異
git diff [first-branch] [second-branch]...[last-branch] [資料夾或檔案]
複製程式碼

4. Git 撤銷操作

後續更新中...

5. Git 刪除分支

## 刪除本地分支
git branch -D [branch-name]
舉例:
git branch -D dev-test-v190218-rangdandanfei

## 刪除遠端分支
<1> git push origin --delete [branch-name]
舉例:
git push origin --delete dev-test-v190218-rangdandanfei

<2> git branch -dr [remote/branch]
舉例:
git branch -dr origin/dev-git-use-v190219-rangdandanfei
(使用git branch -a命令看一下有沒有刪除掉)
複製程式碼

擴充套件

1. Git學習網站資料收集:

廖雪峰Git教程:www.liaoxuefeng.com/wiki/001373…

git - 簡易指南:www.bootcss.com/p/git-guide…