GIT命令集
阿新 • • 發佈:2018-02-28
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命令集