git的工做原理仍是比較簡單的,當咱們建立了本地代碼倉庫後,會在本地代碼倉庫的根目錄中生成一個.git的隱藏文件。python
.git爲一個文件目錄,又叫作版本庫。在本地代碼倉庫文件夾中,除.git目錄以外的全部與.git同級的目錄及其子目錄都叫作工做區。git
工做區(Working Directory):倉庫文件夾裏除.git目錄之外的內容 版本庫(Repository):.git目錄,用於存儲記錄版本信息 暫緩區(stage) 分支(master):git自動建立的第一個分支 HEAD指針:用於指向當前分支
git add和git commit的原理 git add :把文件修改或者新添加的文件添加到暫存區 git commit :把暫存區的全部內容提交到當前分支
下圖就能夠解釋git add 和 git commit的原理:github
0、git init 初始化 一、git add filename.txt 添加要往遠程傳的文件到一個臨時列表 二、git commit -m "xxx" # 說明爲啥上傳 三、git push origin master # 上傳 四、git clone https://github.com/triaquae/Weibo # 克隆遠程的項目 五、git status 查看修改結果 六、git log 查看修改過幾回 6.一、git reflog 查看修改事後全部歷史操做 七、git log --pretty=oneline 查看修改過的全部版本 八、git reset --hard 加版本 回滾到哪一個版本 九、git reset --hard head^ 回滾到上個版本 十、git reset --hard head^^ 回滾到上上(回滾到上兩個)個版本 十一、git reset HEAD filename.txt 撤回提交到暫存區的操做 十二、git checkout --filename.txt 撤銷工做區操做(能夠多個文件) 1三、git rm filename.txt 刪除暫存區 1四、git checkout -b "dev" 建立分支(引號裏是分支名) 1五、git push origin xxx 提交到分支庫(xxx表示分支名) 1六、git branch 查看分支 16.一、git checkout dev 切換到分支庫 1七、git merge dev 合併分支庫到主庫(dev表示分支庫) 1八、git pull 拉遠程庫的文件 1九、git stash 緩存工做區的內容 20、git stash list 查看暫存區的內容 2一、git stash apply 把暫存區的內容恢復到工做區 2二、git stash pop 把暫存區的內容恢復到工做區而且把暫存區的刪除 2三、版本回退: git reset --hard HEAD : 回退到當前的版本 git reset --hard HEAD^ : 回退到上一個版本 git reset --hard HEAD^^ : 回退到上上個版本 git reset --hard HEAD~100 : 回退到前100版本 git reset --hard 版本號(前5位)
咱們修改或者新添加的文件起初是處於工做區,經過git add命令能夠把工做區的文件移動到版本庫中的暫緩區(stage)。緩存
處在暫緩區(stage)的代碼能夠經過git commit -m 「提交的註釋」 提交到版本庫中的分支(master)。服務器
處在分支(master)中的代碼能夠經過git push命令push到共享版本庫。app
注意:只有分支中的文件才能夠push到共享版本庫。命令行
文件夾做爲共享版本庫指針
1.建立共享版本庫文件夾,而後終端進入該文件夾下執行如下命令建立一個空的共享版本庫 git init --bare 2.項目經理將共享版本庫的內容先下載下來,命令後面的地址即爲共享版本庫所在服務器的地址+路徑 git clone 地址 3.添加須要忽略的文件 touch .gitignore 去github上搜索.gitignore->Objective-C,把Objective-C中的內容粘貼到建立的.gitignore文件中(或者直接把github中的Objective-C文件下載到該目錄下)。而後執行如下命令 git add .gitignore git commit -m 「添加了須要忽略的文件」 4.項目經理初始化項目 git commit -m 「初始化項目」—>提交到本地代碼倉庫 5.將項目push遠程倉庫中 git push origin 6.當源代碼管理是使用git,而且在Xcode進行多人開發的操做 注意:當使用git,項目中用到了靜態庫就不須要經過命令行進行添加
1.1.0版本開發完成,以後對1.0版本進行備份 git tag -a weibo1.0 -m 「這個是1.0版本」 : 給某一個版本打上標籤(weibo1.0是標籤名稱) git tag : 查看全部的標籤 2.須要將1.0版本的標籤,push到服務器 git push origin weibo1.0 3.繼續開發2.0版本 4.發現1.0版本有bug,從標籤裏面clone 1.0版本,從標籤建立一個fixbug分支,在分支中修復bug git clone 共享版本庫 git checkout weibo1.0(標籤的名稱) git checkout -b weibo1.1fixbug(分支名稱) 5.修復後的版本上傳AppStore/將1.0fixbug進行備份/將1.0fixbug版本和2.0版本進行合併\ git tag -a weibo1.1 -m 「這個是修復了1.0版本bug的1.1版本」 git tag git push origin weibo1.1 將子分支中代碼合併到主分支,pull—>weibo1.1fixbug—>push master—>其它同事更新 6.刪除分支 git branch -r(r是遠程倉庫的意思,這個命令能夠查看遠程倉庫中的分支) git branch -r -d 分支名稱
1)touch README.md文件是關於工程代碼的介紹,相似與使用說明書 2)git init 初始化一個本地的 git倉庫,生成隱藏的.git目錄(隱藏的.git目錄可以使用ls -aF命令能夠查看到) 3)git add README.md 把README.md文件添加到倉庫中 4)git commit -m "first commit" 執行提交說明,在Gitz中這個屬於強制性的 5)git remote add origin https://github.com/XFZLDXF/TEST.git 添加本地倉庫origin和指定遠程倉庫地址 6)git push origin master 推送本地倉庫到遠程指定的master分支上
到這基本的git使用已經差很少了,暫時也就總結這些後續會更新補充...code