1. 程式人生 > >GIT命令集

GIT命令集

reflog clone 信息 目標 服務器 email 還要 版本信息 電腦

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文件,用來追蹤管理版本庫

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 checkout -b 分支名 # 創建並切換到該分支 $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來查看最後一次提交的信息

GIT命令集