Git實戰命令總結

目錄

1. 建立本地項目並上傳GitHub

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

2. Git合併(merge)指定文件或文件夾

需求: 將dev分支的部分文件合併(merge)到master分支並推到遠程java

原理: 先把master分支代碼拷貝一份,成爲一個新的臨時分支master-temp,而後把dev分支上須要合併過來的那部分文件或文件夾替換到臨時分支master-temp上,而後把臨時分支master-temp合併到master分支,這時dev分支上要合併的部分文件或文件夾已經成功的合併到master分支上了,最後再刪掉這個臨時分支master-temp,就OK了。git

操做:bash

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

git checkout master
git pull
複製代碼

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

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分支上fetch

git commit -m "提交信息到臨時分支master-temp上"
複製代碼

切換到master分支網站

git checkout master
複製代碼

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

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 刪除文件

分兩種狀況:

<1> 普通的刪除本地和遠端倉庫文件或文件夾

<2> 刪除遠端倉庫的文件或文件夾,同時保留本地工做區對應的文件或文件夾

<1> 普通的刪除本地和遠端倉庫文件或文件夾

刪除命令爲:

## 刪除本地倉庫的文件或文件夾
git rm test.txt(test.txt爲刪除的文件)
git rm -r testtest爲刪除的文件夾)
## 提交
git commit -m "remove test files"
## 推送到遠端倉庫
git push original master

說明:
git rm -r命令中-r表示遞歸全部子目錄
複製代碼

<2> 刪除遠端倉庫的文件或文件夾,同時保留本地工做區對應的文件或文件夾

先來看一張git倉庫結構圖:

git倉庫

操做解釋:中斷Workspace(本地工做區)Stage或Index(暫存區)的關聯,即本地工做區中止追蹤指定文件,該文件會保留在本地工做區,而後刪除暫存區、本地倉庫、遠端倉庫中對應的指定文件。

刪除命令爲:

## 本地工做區中止追蹤指定文件或文件夾,即本地工做區的文件或文件夾會保留下來
git rm --cached test.txt(test.txt爲刪除的文件)
git rm --cached -r testtest爲刪除的文件夾)
## 提交
git commit -m "remove file from remote repository"
## 推送到遠端倉庫
git push original master
複製代碼

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命令看一下有沒有刪除掉)
複製代碼

6. Git刪除遠程分支後,本地同步

刪除遠程分支後,在本地使用 git branch -a 命令查看本地和遠程全部分支時,遠程倉庫刪除的分支依然能看到,以下圖示:

git刪除本地未同步

有兩種方法能夠解決:

<1> 使用 git fetch -p 命令刪除遠程倉庫不存在的分支

git_fetch_p刪除遠程不存在分支

<2> 使用 git remote show origin 命令查看本地分支和遠程分支對應關係,使用 git remote prune origin 命令刪除遠程倉庫不存在的分支

git_remote_prune_origin刪除

擴展

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

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

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

相關文章
相關標籤/搜索