日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Git小技巧 - 指令别名及使用Beyond Compare作为差异比较工具

發(fā)布時間:2025/3/15 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Git小技巧 - 指令别名及使用Beyond Compare作为差异比较工具 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

  本文主要寫給使用命令行來操作Git的用戶,用于提高Git使用的效率。至于使用命令還是GUI(Tortoise Git或VS的Git插件)就不在此討論了,大家根據(jù)自己的的喜好選擇就好。我個人是比較推薦使用命令行的,因為命令行是原生的客戶端,當熟悉了命令行以后,使用效率并不會比GUI低。而且我是從GUI(Tortoise SVN)轉命令行的,剛開始的時候也是吐槽命令行的“非人性化”,但我走出了舒適區(qū),真正使用起命令行后,我才發(fā)現(xiàn)了自己之前的想法是膚淺的。

?

指令別名

  指令別名就是給一些常用的指令設置一個較短的指令別名來提高Git的使用效率。

  如git st(git status):

  

  

  使用指令別名,并不會把原指令覆蓋掉,而是同時生效:

  

?

  指令別名輸錯的時候,也會有提示:

  

?

  我在這里會分享我設置的指令別名,希望能幫助提高使用效率。

  1. 查看狀態(tài)(Show the working tree status) - git status

git st

  

?

  2. 提交(Record changes to the repository) - git commit

git ci

  

?

  3. 分支操作(List, create, or delete branches) - git branch

git br

?  

?

  4. 簽出(Switch branches or restore working tree files) - git checkout

git co

  簽出分支:

  

?

   簽出(還原)工作區(qū)文件:

  

?

  簽出(還原)工作區(qū)所有文件:

  

?

  5.差異(Show changes between commits, commit and working tree, etc) - git diff

  工作區(qū)(working driectory)與暫存區(qū)(staging area)的差異:

git df

  單個文件差異:

  

?

  所有文件差異:

  

?

  暫存區(qū)(staging area)與本地倉庫(repository)的差異:

git dfs

?  單個文件差異:

  

?

  多個文件差異:

  

?

  6.合并(Join two or more development histories together) -?git merge

git mr

  

?

  7.日志(Show commit logs) -?git log

?  查看最近一條日志:

git last

  

  

  查看日志及分支提交信息:

git ls

  

?

  其中綠色的表示local分支,紅色的的表示host分支,從上圖可以看出,local的master分支、host的master分支、host的dev分支都處于同一個提交,local的dev分支領先于前面提到的3個分支。當版本顯示不全提交時,可以按回車(回車)繼續(xù)加載提交,需要退出是,按字母q。另外,你可以加“-n”指定查看前n條記錄:

  

?

  查看日志、分支提交信息、提交人、提交時間:

git lg

?  

?

  當版本顯示不全提交時,可以按回車(回車)繼續(xù)加載提交,需要退出是,按字母q。另外,你可以加“-n”指定查看前n條記錄:

  

?

  8.變基(Reapply commits on top of another base tip) -?git rebase

git rb

  

?

  我理解的rebase和merge功能上比較類似,只是rebase操作后,提交基本都會在一條線上,而merge會從一條線合到到另外一條線。

  Merge:

  

  

  Rebase:

  

?

  9.揀選(Apply the changes introduced by some existing commits) -?git cherry-pick 

git cb

? ?

  

  從圖中看看出,cherry-pick是把某個提交復制過來作為一個新的提交,和merge或者rebase的效果不同,check pick后可以進行merge或rebase操作:

  

?

使用Beyond Compare作為差異比較工具

  命令行自帶的文件差異比較工具功能比較簡單,用來查看或對比文件差異時,可能效果不太好,特別是在解決沖突的時候,但是我們可以集成一些比較強大的差異比較工具,比如本文提到的Beyond Compare。那么,我們先看一下例子:

?

  自帶的差異比較效果:

  

?

  使用difftool指令調用Beyond Compare的比較效果:

  

  

?  

  當然difftool也可以使用指令別名:

  

  

  解決合并沖突:

  我們在dev的a.txt文件中添加“dev”內容,在master分支上添加“master”內容,然后用master分支合并dev。

  

  

  使用mergetool指令調用Beyond Compare合并沖突:

  

  

?

  由上圖可以看出,左邊是當前分支的版本,右邊的是需要合并的分支的版本,中間的是相同部分的版本,處理沖突的策略大概有以下幾種:

  #1 當前分支版本替換合并分支版本,點擊綠色的箭頭。

  #2?合并分支版本替換當前分支版本,點擊粉色的箭頭。

  #3 同時需要兩個版本的內容,點擊綠色或粉色的箭頭,然后把另外的分支的內容拷貝到下方的文本編輯框。

  #4 只要相同部分的內容,什么都不干。

  #5 其他。

  

  最后,點擊紅色的感嘆號,表示已解決沖突。我這里選擇#3的策略:

  

?  

  關閉Beyond Compare,完成合并操作。

?  

?

如何配置

  .gitconfig是配置的主要文件,它一般在C:\Users\{用戶名}目錄中,如果沒有,可以通過以下兩步創(chuàng)建:

  #1 打開命令行工具

  

  

  #2 執(zhí)行設置用戶名或者設置郵箱的指令。

  設置用戶名:

git config --global user.name "{your username}"

  

  設置郵箱:

git config --global user.email "{your email}"

  

  打開.gitconfig文件,把以下內容拷貝到文件中,完成指令別名的配置:

  [alias]
  st = status
  ci = commit
  co = checkout
  br = branch
  df = diff
  dft = difftool
  dfs = diff --staged
  dfts = difftool --staged
  mr = merge
  mrt = mergetool
  last = log -1 HEAD
  ls = log --oneline --graph --all --decorate
  lg = log --oneline --graph --all --decorate --pretty=format:"%h%x20%Cgreen%d%x20%Cred%an%x20%C(yellow)%ad%x20%Creset%s" --full-history --date=short
  rb = rebase -i
  cp = cherry-pick

?

  打開.gitconfig文件,把以下內容拷貝到文件中,完成Beyond Compare的配置:

  [diff]
  tool = bc4
  [difftool]
  prompt = true
  [difftool "bc4"]
  cmd = \"D:/Program Files/Beyond Compare 4/bcomp.exe\" "$(cygpath -w $LOCAL)" "$REMOTE"
  [merge]
  tool = bc4
  [mergetool]
  prompt = true
  [mergetool "bc4"]
  #trustExitCode = true
  cmd = \"D:/Program Files/Beyond Compare 4/bcomp.exe\" "$LOCAL" "$REMOTE" "$BASE" "$MERGED"

?

  最終效果如圖所示:

  

?

最后

  希望以上分享的小技巧可以提高大家的效率,大家也可以根據(jù)自己的需要去設置指令別名,歡迎大家討論及分享指令別名的使用心得。

轉載于:https://www.cnblogs.com/Erik_Xu/p/5655525.html

總結

以上是生活随笔為你收集整理的Git小技巧 - 指令别名及使用Beyond Compare作为差异比较工具的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。