歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Git使用基礎教程

Git使用基礎教程

日期:2017/2/28 13:57:54   编辑:Linux教程

下面所寫的其實是寫給公司內部的Git使用基礎教程,我在這裡也記錄下。

修改Git配置

windows操作系統換行配置

  1. git config --global core.autocrlf input

用戶名、郵箱配置

  1. git config user.name yourname --local
  2. git config user.email [email protected] --local

克隆v3代碼庫

  1. git clone [email protected]:static/v3.git

查看分支

列出本地所有的分支

  1. git branch

列出遠程所有的分支

  1. git branch -r

創建分支

基於本地分支創建

  1. git branch [BRANCH_NAME]
  2. git push origin [BRANCH_NAME]

基於遠程分支創建

  1. git branch [BRANCH_NAME] origin/master

本地分支與遠程分支綁定

綁定後操作就能​省略origin [branch],使用起來更加方便高效,當然如果有多個遠程需要操作就不能省略了

  1. git push -u origin [branch]

切換分支

切換到本地分支,如果本地分支不存在自動尋找遠程分支

  1. git checkout [BRANCH_NAME]

更新分支

更新master

  1. git pull --rebase origin master

解決rebase沖突。

  1. git status

# 根據提示打開對應文件,搜索"<<<<<<<"字符,解決沖突後執行

  1. git add -u
  2. git rebase --continue

# 停止pull操作,回pull rebase之前的狀態

  1. git rebase --abort

提交代碼

提交到本地版本庫

  1. git commit -m "commit message"

提交到遠程master

  1. git push origin master

合並分支

切換到master。

  1. git checkout master

合並分支。

  1. git merge --no-ff [BRANCH_NAME]

解決src目錄下的沖突。

  1. https://help.github.com/articles/resolving-a-merge-conflict-from-the-command-line

使用外部工具解決沖突

解決本次合並的所有沖突

  1. git mergetool

解決特定文件的沖突

git mergetool src/js/g.js
重新構建build、dist目錄下的所有沖突的文件。

  1. ytpm [PATH]

提交代碼。

  1. git add .
  2. git commit -m "commit message"

恢復代碼

放棄本地修改(廢棄本地所有未提交的文件,和遠程保持一致)

  1. git reset --hard origin/master

恢復一個提交

  1. git revert [COMMIT_ID]

恢復merge

  1. git revert -m 1[MERGE_COMMIT_ID]

恢復到指定版本

  1. git reset --hard [COMMIT_ID]

刪除分支

刪除本地分支

  1. git branch -d [BRANCH_NAME]

刪除遠程分支

  1. git push origin --delete[BRANCH_NAME]

查看變更記錄

查看變更歷史

  1. git log --decorate --numstat [PATH]

查看某個提交記錄

  1. git show --name-only [COMMIT_ID]

對比文件

git默認方式

對比工作區版本和暫存區版本

  1. git diff --[PATH]

對比暫存區版本和版本庫版本

  1. git diff --cached --[PATH]

對比工作區版本和版本庫版本(HEAD)

  1. git diff HEAD --[PATH]

對比兩個提交過的文件

  1. git diff [COMMIT_ID_1][COMMIT_ID_2]--[PATH]

對比兩個分支的文件

  1. git diff develop master -- src/js/g.js
  2. git diff develop:src/js/g.js master:src/js/g.js

查看其它分支上的文件

  1. git show master:src/js/g.js

外部比較工具完成比較

比較本次合並的所有修改(只與提交前的記錄比較)

  1. git difftool

比較指定文件的歷史版本

  1. git difftool [GitHash] HEAD -- src/js/g.js

不小心在develop上進行開發時解決方案

未提交時

  1. git stash
  2. git checkout [BRANCH_NAME]
  3. git stash pop

已提交時

  1. git log -1# 記住COMMIT ID
  2. git reset --hard origin/develop
  3. git checkout [BRANCH_NAME]
  4. git cherry-pick [COMMIT_ID]

不小心將develop或基於develop創建的分支合並到master上時解決方案

  1. A--M---B <---develop
  2. \
  3. --C--G---J---P---Q <---master

如上例,需要先確認好J這次錯誤提交點以及其之前、之後提交點的hash值,並確保當前HEAD處於Q上,接著執行:

  1. git rebase -i -p --onto P G

執行完後需要手工解決之後每次提交出現的沖突,手工比較解決掉沖突後執行:

git add . // 添加此次沖突修改

  1. git rebase --continue

注意,上面的步驟可能會進行很多次,每次都是上面的方法;手工比較的方法可以參看[外部比較工具][1]的使用方式。

其它
Beyond Compare比較工具配置
在~/.gitconfig文件中加入以下配置,使用的比較工具為Beyond Compare,大家可以自行下載;如果是win用戶對應的路徑需要相應的修改。

另外,Mac版的 Beyond Compare 4 還需要進行設置讓其支持通過命令行的方式調用:點擊菜單 -> Install Commond Line Tools...然後輸入系統登錄密碼即可。
[merge]
tool = bcomp
[mergetool]
prompt = false
keepBackup = false
[mergetool "bcomp"]
trustExitCode = true
cmd = "/usr/local/bin/bcomp" "$LOCAL" "$REMOTE" "$BASE" "$MERGED"
[diff]
tool = bcomp
[difftool]
prompt = false
[difftool "bcomp"]
trustExitCode = true
cmd = "/usr/local/bin/bcomp" "$LOCAL" "$REMOTE"

常用git​ Alias

  1. [alias]
  2. st = status --short--branch
  3. pu = pull --rebase
  4. ca = commit --amend
  5. ci = commit -a -v
  6. br = branch
  7. bv = branch -vv
  8. co = checkout
  9. cb = checkout -b
  10. df = diff
  11. un = reset --hard HEAD
  12. uh = reset --hard HEAD^
  13. ll = log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]"--decorate --numstat
  14. ld = log --pretty=format:"%C(yellow)%h\\ %C(green)%ad%Cred%d\\ %Creset%s%Cblue\\ [%cn]"--decorate --date=short--graph
  15. ls = log --pretty=format:"%C(green)%h\\ %C(yellow)[%ad]%Cred%d\\ %Creset%s%Cblue\\ [%cn]"--decorate --date=relative

GitHub 教程系列文章

GitHub 使用教程圖文詳解 http://www.linuxidc.com/Linux/2014-09/106230.htm

Git 標簽管理詳解 http://www.linuxidc.com/Linux/2014-09/106231.htm

Git 分支管理詳解 http://www.linuxidc.com/Linux/2014-09/106232.htm

Git 遠程倉庫詳解 http://www.linuxidc.com/Linux/2014-09/106233.htm

Git 本地倉庫(Repository)詳解 http://www.linuxidc.com/Linux/2014-09/106234.htm

Git 服務器搭建與客戶端安裝 http://www.linuxidc.com/Linux/2014-05/101830.htm

Git 概述 http://www.linuxidc.com/Linux/2014-05/101829.htm

分享實用的GitHub 使用教程 http://www.linuxidc.com/Linux/2014-04/100556.htm

Ubuntu下Git服務器的搭建與使用指南 http://www.linuxidc.com/Linux/2015-07/120617.htm

Git 的詳細介紹:請點這裡
Git 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved