開發場景:
-
遠端有主分支 master,提供使用者使用的正式的穩定的版本.
-
開發分支 dev,用於日常開發.
-
開發者們在本地任意建立自己的本地分支 Local Branch.
-
然後推到遠端自己的分支 再合併到遠端分支 dev。
一.使用studio的版本控制工具
1.配置git (android sudio 以mac版為例))
Android Studio一般安裝後已經自行配置了git程式所在的位置,在設定->Version Contral-> Git -> Path to git executable中可檢視.
複製程式碼
2.對專案啟用git管理 這步是將專案納入git管理之下
點選android studio選單欄的VCS後,選擇Enable Version Control Integration. 在彈出的框裡選擇Git .
複製程式碼
3.切換到Project檢視,然後在Project上面右擊
彈出列表中選擇git->add.這樣就可以將專案的檔案納入git管理。
複製程式碼
4.新增忽略檔案(在專案的.gitignore中) 或者下載外掛(ignore 右鍵new .ignore file)
*.iml
.gradle
/local.properties
/.idea
.DS_Store
/build
/captures
/MPChartLib/bulid/(三方依賴的build新增忽略)
.externalNativeBuild
複製程式碼
5.提交commit(向上的箭頭) 第一次線配置倉庫路徑 登入賬號密碼 commit-> push
二.使用命令列
--------------------------------基本------------------------
初始化: git init
新增所有檔案受控版本控制: git add . (指定檔案: git add 'name')
提交: git commit -m 'your word'
推送到遠端: git push origin
從遠稱拉取: git pull
--------------------------------分支---------------------
新建本地分支:git branch 'name'
推送本地分支到遠端: git push 'origin' '分支名'(必須與本地分支名一致)
檢視本地與遠端繫結狀態: git branch -vv
檢視所有分支: git branch -a
追蹤遠端分支(繫結): git branch --set-upstream-to='origin' '分支名'
切換分支: git checkout '分支名'
合併分支程式碼: git merge '分支名'
同步dev分支 log日誌::
- ➜ project git:(ming) git checkout dev
- Switched to branch 'dev'
- ➜ project git:(dev) git merge ming
- Updating 7cf39b1..06e1529
- Fast-forward
- app/build.gradle | 32 ++++++++++----------------------
- app/src/main/AndroidManifest.xml | 3 +++
- create mode 100644 app/src/main/res/layout/item_withdrawlist.xml
- ➜ project git:(dev) git add .
- ➜ project git:(dev) git status
- On branch dev
- nothing to commit, working tree clean
- ➜ project git:(dev) git push origin dev
- Total 0 (delta 0), reused 0 (delta 0)
- To http://47.104.17.92/Ming/project.git
- 7cf39b1..06e1529 dev -> dev
- ➜ project git:(dev) git log
更新內容:
--------------------不是那麼常用-------------------------
檢視本地所有分支 : git branch (*代表當前所在的分支)
檢視遠端所有分支: git branch -r
所有本地分支和遠端分支:git branch -a
檢視狀態 : git status
-----------------------tag相關---------------------------
打標籤 : git tag 'tagName'
檢視所有標籤 : git tag
刪除標籤 : git tag -d 'tagName'
將本地標籤推送到遠端倉庫 : git push origin 'tag'
刪除遠端標籤 : git push origin -d 'tagName'
參考: 常用git命令清單
日後再增加...目前的基本可以滿足大部分需求了吧.
9.1更新
D:\Space\AndroidProject\Base>git remote -v
origin https://gitee.com/1806613533/Base.git (fetch)
origin https://gitee.com/1806613533/Base.git (push)
D:\Space\AndroidProject\Base>git remote remove origin
D:\Space\AndroidProject\Base>git remote -v
D:\Space\AndroidProject\Base>git remote add origin https://gitee.com/1806613533/Base.git
複製程式碼
git remote -v 檢視遠端倉庫地址
git remote remove origin 移除地址
git remote add origin '遠端倉庫地址' 新增地址
-----------------增加SSL金鑰---------------------
ssh-keygen -t rsa -C "Xxxx@qq.com"
cat ~/.ssh/id_rsa.pub
➜ Bit-z_and git:(ming) ✗ ssh-keygen -t rsa -C "Xxxx@qq.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/mrming/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/mrming/.ssh/id_rsa. Your public key has been saved in /Users/mrming/.ssh/id_rsa.pub. The key fingerprint is: SHA256:U7uTbgTtbINDJYsDLuDutR9eA7wWb82bj8a27viJ+NA Xxxx@qq.com The key's randomart image is: +---[RSA 2048]----+ | | |. . . . | |.. . . . =. | | .. o o +... | |. . + oS=. | | . . * =.o | |. . .= E.+. | | . .o * +=. | | .+.+@+. | +----[SHA256]-----+
➜ Bit-z_and git:(ming) ✗ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDzzfF0CbytS72kR8ejXN7MKO/DeyET4kwohCWlCMGFHMiyOSuuhBd0mhB6HsurdJ50nBNlJXmHw9lbQSqfy0b5iTST3+/Wc8hQADFJOkPNWx3uKCWSzK3TfNm+NNxJi4p7QksibEi5wsiX5uCLBQj86Ye7SzKuOLph9aR6Un5KOaXkl2fa4xXPz7 Xxxx@qq.com
git 遇到的錯誤:
如果遠端和本地commit各有領先的話,這個時候會出現你的那個錯誤 .只需刪除 或者add -f 指定檔案即可.
add -f 表示強制新增 如a.txt 檔案是在忽略檔案路徑 加-f表示force 操作 add -f 結合reset --hard 目的就是刪除本地忽略檔案
關於解決衝突: <<<<<<< HEAD 到 ======= 中間的內容是local提交的。
======= 到 >>>>>>> 是遠端倉庫中的內容
11.22新增:
如下需求: 我目前在dev分支,想用qin分支的程式碼完全覆蓋dev,用如下指令:
git fetch --all
git reset --hard origin/qin(徹底回退到某個版本)
git pull
複製程式碼
刪除本地分支
git branch -d <BranchName>
複製程式碼
刪除遠端分支
git push origin --delete <BranchName>
複製程式碼
強制推送命令
git push -u origin master -f
複製程式碼
推送命令後出現了這樣的情況: You are not allowed to force push code to a protected branch on this project.
解決: 進入網站:“設定” – > “保護分支” - > 取消保護 .即可