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』,危險!
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:功能 |