標籤:

Git 系列之四:Git 進階功能

【TIP】在我們的《Windows 下 Git 配置與使用指南》中,有介紹大家使用 $ git go 命令。其實,這並非 Git 的原生命令,它是我們自定義的一個 alias(別名),由 $git add、$git commit、$git push 和 $git pull 四個命令組合而成。待熟悉之後,你可以直接使用這些原生命令,或者自定義更適合自己的 alias。

add

添加新文件到 Git 代碼倉庫的索引中

$ git add filename

mv

移動或重命名文件

$ git mv old-filename new-filename

rm

從工作目錄和 Git 代碼索引中刪除文件

$ git rm filename

status

查看目前工作目錄的代碼狀態,自上次提交以來的添加、修改和刪除等

$ git status

diff

查看自上次提交以來,本地代碼改動的具體情況

$ git diff

commit

提交修改的代碼(只是提交到本地的代碼庫,不會推送到伺服器)

$ git commit -am "修改說明"

如果覺得剛提交的「修改說明」寫得不夠好,可輸入以下命令調整

$ git commit --amend

push

將自上次 push 以來的,本地歷次 commit,推送到伺服器

結合我們的實際,應該這樣寫:

$ git push origin master:your-id

其中,master 是本地的分支名;your-id 填你在伺服器上的 id,伺服器的版本庫里會有以你的 id 為名稱的分支。

pull

將別人推送到伺服器的代碼,拉到你的機器里

$ git pull

log

查看修改記錄,含作者、時間、修改說明等

$ git log

show

顯示具體的代碼改動情況

顯示最後一次 commit 修改的內容:

$ git show

顯示指定 commit 修改的內容:

【TIP】git log 命令中,每條 commit 會有一長長的字元串,此即 commid id,取其前面五六位即可。

$ git show commit-id

branch

分支管理

列出所有分支(當前所在分支前會有「*」號):

$ git branch

新建分支:

$ git branch 新分支名

刪除分支:

$ git branch -d 欲刪除的分支名

【注意!】不要把 『-d』 寫成了 『-D』,危險!

  • -d:要求:被刪除分支的所有修改,已經合併到當前分支;
  • -D:直接刪除,未合併的代碼,將被丟棄!
  • checkout恢復某個已修改的文件(撤銷未提交的修改):

    $ git checkout file-name

    切換到另外的分支,進行開發:

    $ git checkout branch-name

    【注意!】該命令可能伴隨大量的文件增刪/修改。Windows 下,改動已被佔用的文件可能會被拒絕,導致版本庫出現嚴重問題。如果確實要這樣做,安全起見,最好先註銷一次。

    merge

    合併指定分支到當前分支:

    $ git merge branch-name

    revert

    還原已提交的修改(已經提交過的修改,可以反悔~)

    還原最近一次提交的修改:

    $ git revert HEAD

    還原指定版本的修改:

    $ git revert commit-id

    stash

    先將未提交的修改暫存起來,接著清除所有改動,使之與沒修改時一樣。

    若你正在開發功能 A,又需立即去開發功能 B。A 的代碼正改到一半,未認真整理,你不想立即提交。此時……請呼叫 stash ~。

    它會使你所有未提交的修改瞬間不見了:

    $ git stash

    它會使剛剛不見了的修改,瞬間又回來了:

    $ git stash pop

    【TIP】以上命令皆有更多參數,另有一些 Git 命令我們此處沒有介紹。但是,這已足令你使用 Git 時遊刃有餘,你會覺得,Git 簡直是一件神器!:-)

    【TIP】』$ git help』 與 『$ git help 命令名』 會在你需要的時候,無私地幫助你。:-)

    附:git push 失敗的解決辦法

    假設執行操作:

    1. 修改代碼2. git commit3. git push

    此時 push 失敗(錯誤提示:! [rejected] master -> master (non-fast-forward) )

    解決辦法:

    $ git pull

    若成功,則:

    $ git push origin master:your-id

    完事。

    若失敗(提示:CONFLICT (content): Merge conflict in 文件名),則:

    衝突的文件會有類似下面的代碼塊:

    <<<<HEAD你修改的代碼============其他人修改的代碼>>>>>commit id of others"

    考慮你和他人對代碼的修改,更新成合適的內容,並刪除 <<<、===、>>> 3行標記符號,保存文件。

    $ git commit -am "resolve conflict"$ git push origin master:your-id

    更詳細的說明,可以閱讀 $git push –help 該文檔的 NOTE ABOUT FAST-FORWARDS 一節。


    推薦閱讀:

    螺旋藻片的保健功能
    巧用Word查找替換功能挑選英文段落
    排毒功能最強的18種食物
    中華董氏大全的【特異功能】
    透過現象看本質,通過臨床癥狀探究背後的功能失衡——敖醫生談功能醫學(上消化道篇)

    TAG:功能 |