Git 常用命令

一、基本操作

  1. git init 來在目錄中創建新的 Git 倉庫。 你可以在任何時候、任何目錄中這么做,完全是本地化的。

  2. 使用 git clone 拷貝一個 Git 倉庫到本地,讓自己能夠查看該項目,或者進行修改。

  3. 使用 git add 添加需要追蹤的新文件和待提交的更改到暫存區, 然后使用 git statusgit diff 查看有何改動, 最后用 git commit 將你的快照記錄。這就是你要用的基本流程,絕大部分時候都是這樣的。

  4. 在當前工作目錄執行命令:git add . Git 會遞歸地將你執行命令時所在的目錄中的所有文件添加上去.

  5. 執行 git status 以查看在你上次提交之后有啥被修改或者臨時提交了, 從而決定自己是否需要提交一次快照,同時也能知道有什么改變被記錄進去了。

  6. git diff 顯示已寫入緩存與已修改但尚未寫入緩存的改動的區別,執行 git diff 來查看執行 git status 的結果的詳細信息 —— 一行一行地顯示這些文件是如何被修改或寫入緩存的。
    git diff HEAD —— 顯示的是工作目錄與上一次提交的更新的區別,無視緩存。

  7. git commit -a 自動將在提交前將已記錄、修改的文件放入緩存區,基本上這句話的意思就是,為任何已有記錄的文件執行 git add .不過你仍然需要執行 git add 文件名 來添加新文件

  8. git 對本地文件的文件名的大小寫是不敏感額,如果修改文件名的大小寫不會添加修改,命令行運行下列代碼,強制git對大小寫敏感
    $ git config core.ignorecase false

  9. git remote 命令列出所有遠程主機 使用-v選項,可以參看遠程主機的網址

二、 常用命令

1. git branch

【 origin 指的是主機名 master 指的是分支名】

git branch -r 查看遠程分支

git branch -a 查看所有分支

git branch -d (branch name) 刪除本地分支

git branch (new-branch -name) 創建分支

git branch -v 查看各個分支最后一個提交對象的信息

git branch -m <old_branch_name> <new_branch_name> 重命名本地分支

2. git push

$ git push :

git push <遠程主機名> <本地分支名>:<遠程分支名>

執行 git push [alias 遠程倉庫名] [branch 遠程分支名],就會將你的當前 分支推送成為 [alias] 遠端上的 [branch] 分支。 讓我們試試推送我們的主分支到先前添加的“github”遠端倉庫上去。

$ git push origin master 如果省略遠程分支名,則表示將本地分支推送與之存在"追蹤關系"的遠程分支(通常兩者同名),如果該遠程分支不存在,則會被新建。

不帶任何參數的git push,默認只推送當前分支,這叫做simple方式。

git push origin --delete <branchName> 刪除一個遠程分支

git push origin :<branchName> 推送一個空分支到遠程分支,其實就相當于刪除遠程分支

3. git pull

$ git pull

比如,取回origin主機的dev分支,與本地的master分支合并,需要寫成下面這樣。git pull <遠程主機名> <遠程分支名>:<本地分支名>

$ git pull origin dev:master

上面命令表示,取回origin/dev分支,再與當前master分支合并。實質上,這等同于先做git fetch,再做git merge。

$ git fetch

$ git fetch origin dev

$ git merge origin/dev 合并fetch下來的遠程dev分支數據到當前分支上

git fetch origin 遠程分支名:本地分支名

上面命令表示,取回origin/next分支,再與當前分支合并。實質上,這等同于先做git fetch,再做git merge。

4. git checkout

git checkout -b [分支名] [遠程主機名]/[分支名]

5. git log

git log --oneline 顯示log一行摘要

git log --author="author-name" 顯示某個用戶提交的log

git log -p (file-name) 某個文件的提交log

6. git tag

  • 列出現有標簽的命令$ git tag
  • 帶有通配符的列出命令$ git tag -l 'v1.4.2.*'
  • 新建標簽 $ git tag -a v1.4 -m 'my version 1.4'引號里面的是標簽說明
  • 把標簽推到git服務器上$ git push origin [tagname]
  • 一次推送所有本地新增的標簽到git服務器 git push origin --tags

7. git 追蹤關系

在某些場合,Git會自動在本地分支與遠程分支之間,建立一種追蹤關系(tracking)。比如,在git clone的時候,所有本地分支默認與遠程主機的同名分支,建立追蹤關系,也就是說,本地的master分支自動”追蹤”origin/master分支。

Git也允許手動建立追蹤關系。

git branch --set-upstream master origin/dev

上面命令指定本地master分支追蹤遠程 origin/dev分支。

但是據說上面--set-upstream這個命令被廢棄了,建議使用--track 或者 --set-upstream-to來代替
git branch --set-upstream-to=origin/遠程分支名 本地分支名

如果當前分支與遠程分支存在追蹤關系,git pull就可以省略遠程分支名。

$ git pull origin

上面命令表示,本地的當前分支自動與對應的origin主機”追蹤分支”(remote-tracking branch)進行合并。

如何查看本地跟蹤分支對應的遠程分支

git branch -vv(兩個v),就能夠看到本地分支跟蹤的遠程分支。

獲取遠程服務器上某個分支

加入服務器上被合作的伙伴新創建了一個分支,我們可以通過如下方式來獲?。?/p>

$ git fetch origin

然后我門會獲取到新的分支的名字

值得注意的是,在 fetch操作下載好新的遠程分支之后,你仍然無法在本地編輯該遠程倉庫中的分支。換句話說,在本例中,你不會有一個新的new_added_branch分支,有的只是一個你無法移動的 origin/new_added_branch 指針。

如果要把該內容合并到當前分支,可以運行 git merge origin/new_added_branch。如果想要一份自己的 new_added_branch 來開發,可以在遠程分支的基礎上分化出一個新的分支來:

$ git checkout -b new_added_branch origin/new_added_branch
Branch new_added_branch set up to track remote branch refs/remotes/origin/new_added_branch.
Switched to a new branch "new_added_branch"

這會切換到新建的 new_added_branch 本地分支,其內容同遠程分支 origin/new_added_branch 一致,這樣你就可以在里面繼續開發了。

三、沖突解決

如果沒有沖突的話,merge完成。有沖突的話,git會提示那個文件中有沖突,比如有如下沖突:

<<<<<<< HEAD:test.c

printf (“test1″);

=======

printf (“test2″);

>>>>>>> issueFix:test.c

可以看到 ======= 隔開的上半部分,是 HEAD(即 master 分支,在運行 merge 命令時檢出的分支)中的內容,下半部分是在 issueFix 分支中的內容。解決沖突的辦法無非是二者選其一或者由你親自整合到一起。比如你可以通過把這段內容替換為下面這樣來解決:

printf (“test2″);

這個解決方案各采納了兩個分支中的一部分內容,而且刪除了 <<<<<<<,=======,和>>>>>>> 這些行。

在解決了所有文件里的所有沖突后,運行git add 將把它們標記為已解決(resolved)。

然后使用git commit命令進行提交,merge就算完成了

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 分布式版本管理工具 git屬于分布式 svn集中式 git安裝 git初始化一個倉庫 其實就是創建了一個.git隱...
    SnowDragonYY閱讀 1,514評論 0 0
  • 一、 Git 命令初識 在正式介紹Git命令之前,先介紹一下Git 的基本命令和操作,對Git命令有一個總體的認識...
    子瘋zp閱讀 69,942評論 1 18
  • 初始化配置 #配置使用git倉庫的人員姓名 git config --global user.name "Your...
    賤精先玍丶閱讀 355評論 0 0
  • 還不到一小時,我來到了新的一天的起 始 夜很深了,可是人睡不著 我好不容易學會了哭卻也到了...
    叨叨走走閱讀 192評論 0 0
  • 3. “你是誰?”小葉站在大門口,朝屋里的男孩問道。 小男孩沒有馬上回答她,只是停了手中的筆,轉頭看著她。一個穿著...
    暴走小紅帽閱讀 344評論 0 2