1. 程式人生 > >Git常用命令學習筆記

Git常用命令學習筆記

刪除文件 備註 簽到 關聯性 筆記 ads 禁用 查看命令 git merge

(1)安裝Git

   1、Linux下

      先運行git看看當前有沒有安裝,大多數Linux會有很友好的提示信息告訴你安裝Git的命令。比如Debian或Ubuntu Linux,通過一條sudo apt-get install git就可以安裝,比較老的版本則運行sudo apt-get install git-core

   2、Windows下

      直接在官網下載安裝程序https://git-scm.com/downloads。按照默認安裝,安裝完成後在安裝目錄打開git-bash.exe(一個命令行工具)即可直接操作Git。

   安裝完成後運行

    git config --global user.name "your name"

    git config --global user.email "[email protected]"

   全局設置用戶名和e-mail

(2)常用命令

  常規操作

    git init  初始化一個倉庫

    git add <file>  將修改添加到暫存區,可同時添加多個

    git rm <file>  提交一個刪除文件操作到暫存區

    git commit  提交

    git status  查看工作區狀態

    git diff  查看修改內容

    git reset --hard commit_id  切換版本,HEAD指向當前版本,HEAD^指向上個版本,HEAD^~20前二十個版本

    git log  查看提交歷史

    git reflog  查看命令歷史(切換打未來版本是用於查看未來版本的commit_id)

    git checkout -- file  丟棄工作區的修改

    git reset HEAD file  丟棄暫存區的修改

  遠程庫操作

    git remote add <自定義倉庫名> git@server-name:path/repo-name.git  SSH方式關聯一個遠程庫

    git push -u origin <本地分支名>  關聯後,第一次推送master分支的所有內容,第一次推送後,後面的推送可以去掉 -u

參數,-u相當於--set-upstream 另外,第一次從遠程倉庫clone後,遠程倉庫的分支與本地分支的關聯性默認是按照同名分支來關聯的。當在這些分支上開發並push的時候,默認push到同名分支。當在本地新建了一個遠程庫不存在的分支時,第一次推送該分支到遠程庫需要加上這個參數。這時候會在遠程庫新建同名分支並推送代碼,並將兩個分支關聯起來。

    git branch --set-upstream <本地分支名> origin/<遠程分支名>  建立本地分支與遠程分支的關聯關系

    git checkout -b <本地分支名> origin/<遠程分支名>  將遠程庫裏的指定分支拉取到本地(本地不存在該分支),該操作將會在本地新建一個分支並與遠程庫的該分支關聯起來,本地分支名最好與遠程分支名保持一致。

    git pull <遠程庫名> <遠程分支名>:<本地分支名>  從遠程庫獲取某個分支的更新,並與本地指定分支進行快速(fast_forward,不會留下記錄)merge,如果與本地當前分支merge,則冒號後面的內容可以省略,當push時,遠程分支的內容比本地新的時候,也需要執行本操作。

    git fetch <遠程庫名> <遠程分支名>:<本地分支名>  從遠程庫獲取代碼,與pull不同的是,不會自動merge,因此fetch到一個已經存在的分支時會報錯

    git clone git@server-name:path/repo-name.git  克隆一個倉庫

    git clone https://github.com/<user-name>/<repo-name>.git  這種格式為https協議的方式,Git支持多種協議,SSH協議的速度快

  分支操作

    git branch  查看分值,帶 * 表示當前分支

    git branch <name>  創建分支

    git checkout <name>  切換分支

    git checkout -b <name>  創建並切換分支

    git merge <name>  合並某分支到當前分分支

    git branch -d <name>  刪除分支,刪除一個沒有合並過的分支使用-D屬性

    git log --graph  查看分支合並圖

    git log --graph --pretty=oneline --abbrev-commit  查看簡潔的分支合並圖

    git merge --no-ff -m "****" <branch>  --no-ff參數就可以用普通模式合並,合並後的歷史有分支,能看出來曾經做過合並,而fast forward合並就看不出來曾經做過合並。禁用fast forward後Git就會在merge時生成一個新的commit,所以需要 -m 添加備註信息。

    * git stash  把當前工作現場“儲藏”起來,包括工作區和暫存區沒有commit的所有內容

    git stash list  查看“儲藏”的工作目錄列表

    git stash apply  恢復到指定的工作目錄

    git stash drop  刪除指定的工作目錄

    * git stash pop  從“儲藏”的工作取出最近的工作目錄,並刪除,相當於上面兩條命令

  標簽管理

    git tag <tag_name>  在當前分支打一個新標簽

    git tag  查看所有標簽

    git tag <tag_name> <commit_id>  在指定commit處打一個標簽

    git tag -a <tag_name> -m <comment_content> <commit_id>  創建一個帶說明的標簽

    git show <tag_name>  查看標簽詳細信息

    git tag -d <tag_name>  刪除本地標簽

    git push <倉庫名> :/refs/tags/<tag_name>  從遠程倉庫刪除指定標簽

    git push <倉庫名> <tag_name>  推送指定標簽到遠程倉庫

    git push <倉庫名> --tags  一次性推送所有尚未推送的標簽

    

  多人協作

    查看遠程庫信息  git remote -v

    本地新建的分支如果沒有推送到遠程,對別人是不可見的。

    從本地推送分支使用  git push origin <本地分支名>  ,如果推送失敗,使用  git pull  抓取遠程的新提交,如有沖突,先解決沖突,如果提示no tracked則表示本地分支沒有與遠程建立關聯,直接添加  -u  參數或者  git branch --set-upstream <本地分支名> <遠程庫名>/<遠程分支名>  建立關聯。

    從本地創建遠程倉庫對應的分支,使用  git checkout -b <本地分支名> <遠程庫名>/<遠程分支名>

Git常用命令學習筆記