GIT命令集


 

what's the GIT?

  GIT是一款免費、開源的分布式版本控制系統,用於敏捷高效地處理任何或小或大的項目。

Git的功能特性:
從一般開發者的角度來看,git有以下功能:
  1、從服務器上克隆完整的Git倉庫(包括代碼和版本信息)到單機上。
  2、在自己的機器上根據不同的開發目的,創建分支,修改代碼。
  3、在單機上自己創建的分支上提交代碼。
  4、在單機上合並分支。
  5、把服務器上最新版的代碼fetch下來,然后跟自己的主分支合並。
  6、生成補丁(patch),把補丁發送給主開發者。
  7、看主開發者的反饋,如果主開發者發現兩個一般開發者之間有沖突(他們之間可以合作解決的沖突),就會要求他們先解決沖突,然后再由其中一個人提交。如果主開發者可以自己解決,或者沒有沖突,就通過。
  8、一般開發者之間解決沖突的方法,開發者之間可以使用pull 命令解決沖突,解決完沖突之后再向主開發者提交補丁。
 
從主開發者的角度(假設主開發者不用開發代碼)看,git有以下功能:
  1、查看郵件或者通過其它方式查看一般開發者的提交狀態。
  2、打上補丁,解決沖突(可以自己解決,也可以要求開發者之間解決以后再重新提交,如果是開源項目,還要決定哪些補丁有用,哪些不用)。
  3、向公共服務器提交結果,然后通知所有開發人員。
 
優點:
  • 適合分布式開發,強調個體。
  • 公共服務器壓力和數據量都不會太大。
  • 速度快、靈活。
  • 任意兩個開發者之間可以很容易的解決沖突。
  • 離線工作。
缺點:
  • 資料少(起碼中文資料很少)。
  • 學習周期相對而言比較長。
  • 不符合常規思維。
  • 代碼保密性差,一旦開發者把整個庫克隆下來就可以完全公開所有代碼和版本信息。

 

Git 與 SVN 區別點:

  • 1、GIT是分布式的,SVN不是:這是GIT和其它非分布式的版本控制系統,例如SVN,CVS等,最核心的區別。

  • 2、GIT把內容按元數據方式存儲,而SVN是按文件:所有的資源控制系統都是把文件的元信息隱藏在一個類似.svn,.cvs等的文件夾里。

  • 3、GIT分支和SVN的分支不同:分支在SVN中一點不特別,就是版本庫中的另外的一個目錄。

  • 4、GIT沒有一個全局的版本號,而SVN有:目前為止這是跟SVN相比GIT缺少的最大的一個特征。

  • 5、GIT的內容完整性要優於SVN:GIT的內容存儲使用的是SHA-1哈希算法。這能確保代碼內容的完整性,確保在遇到磁盤故障和網絡問題時降低對版本庫的破壞。

 

GIT基本命令

GIT配置

$git config --global user.name "自定制名字"
$git config --global user.email  "自定制郵箱"
$git init # 會生成一個git文件,用來追蹤管理版本庫

# 生成ssh key
mkdir ~/.ssh # 生成文件夾,如果已有該文件夾可跳過這一步
ssh-keygen -t rsa -C 郵箱
# 按三次回車,最后在.ssh文件夾下得到id_rsa和id_rsa.pub兩個文件。
# id_rsa中的內容便是私鑰,id_rsa.pub中的內容便是公鑰。

 

 

 

GIT工作中用的命令

 

#提交代碼
$git add .# .表示所有,也可以是指定文件的名字,將文件添加到暫存區
$git commit -m "描述信息" # 將文件從暫存區添加到當前分支(描述信息一定要好好寫)

#查看日志(可用於版本回退)
$git log # 查看從最遠到最近的提交日志
$git log --pretty = online # 簡化日志
$git reset--hard 日志中的字符串 # 版本回退到指定版本狀態
$git reflog # 記錄每一次命令

#查看狀態及“某個地方”(通常用於處理bug)
$git status # 查看狀態
$git  stash # 將當前工作區的代碼暫存到“某個地方”中,通常這是我們要去處理緊急任務如解bug
$git stash pop # 從“某個地方”中取回原先的代碼
$git stash list # 查看“某個地方”的所有存儲記錄
$git stash apply 編號 # 取出指定編號至工作區
$git stash drop 編號 # 刪除指定編號
$git stash clear # 清空“某個地方”

#分支命令
$git branch 分支名 # 創建分支
$git branch # 查看當前所在分支
$git checkout 分支名 # 切換到指定分支
$git branch -d 分支名 # 刪除指定分支
$git push origin --delete 分支名 # 刪除遠程分支  

$git checkout -b 分支名 # 創建並切換到該分支
$git checkout -b 本地分支名x origin/遠程分支名x # 創建並切換到該分支,分支代碼與遠程分支x上代碼相同
$git merge 分支名 # 將分支名中的代碼與當前區域的代碼合並

#代碼下拉及上傳(master為分支名)
$git pull origin master # 將代碼拉下來進行工作
$git push origin master # 工作完畢將代碼上傳至GIT 

#新電腦第一次使用時
$git clone add origin 目標庫地址 # 克隆目標庫
$git init # 會生成一個Git文件,用來跟蹤管理版本庫
$git remote add origin XXX # 創建遠程倉庫,XXX為你的Git倉庫地址
$git pull origin master # 將代碼拉下來進行工作
$git push origin master # 工作完畢將代碼上傳至GIT 

 

 

 

其他

$git log --graph --pretty = online --abbrev--commit # 查看當前分支合並情況
$git remote -v # 查看遠程倉庫信息

#打標簽
$git tag #查看標簽
$git tag 標簽名 # 打標簽
$git tag 標簽名 id # 給指定id打標簽
$git tag -a 標簽名 -m"描述信息" id # 給指定id打上加描述信息的標簽

#自定制
$git config --global alias.別名 真名 #給命令配置別名,更方便操作
$git config --global alias.last "log-1" #取別名,之后就可以用$git last來查看最后一次提交的信息

 

 

 

   

 

 

 

 

 

 

 

                 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM