1_創(chuàng)建代碼倉庫
git init 創(chuàng)建Repository
ls -al 查看內(nèi)容
git add file 添加文件/ add . 表示添加所有文件
git commit -m "First commit." 提交到Repository
2_查看修改狀態(tài)
git status 查看文件修改情況
git diff 查看所有文件的更改內(nèi)容
git diff app/src/main/.../MainAcitvity.java 查看具體文件的更改內(nèi)容
git checkout app/src/main/.../MainAcitvity.java 撤銷具體文件的更改內(nèi)容
<使用Andorid studio 時,通常用revert撤銷更改>
當文件的更改執(zhí)行過add命令后,無法用checkout命令還原,
此時体啰,git reset HEAD app/src/main/.../MainAcitvity.java取消添加,再運行git checkout命令撤銷修改芍锦。
git log 查看提交記錄<包括提交id节芥,提交人显晶,提交日期有滑,提交記錄>
git log (id) -1 只看一行記錄
git log (id) -1 -p 查看該行記錄具體修改了什么內(nèi)容
git log --graph 以圖表形式查看
_3分支的用法
git branch 查看當前版本庫當中有哪些分支
git branch version1.0 創(chuàng)建名為version1.0的分支
git checkout version1.0 切換到名為version1.0的分支
將分支上的修改合并到主干
git checkout master
git merge version1.0
1_ 切換到主干
2_ 將名為version1.0的分支合并到主干
git merge --no-ff version1.0
--no-ff 作用是在歷史記錄中明確記錄下本次分支合并
git branch -D version1.0 刪除名為version1.0的分支
_4遠程版本庫協(xié)作
git clone https://github.com/.../ text.git 將遠程代碼下載到本地倉庫
git push origin master 在對本地代碼進行了 一些修改和提交跃闹,同步到遠程代碼庫
origin指遠程版本庫的Git地址,此處指https://github.com/.../text.git
master指同步到哪一個分支上毛好,此處為master主干
遠程版本庫的修改同步到本地望艺,兩種方法:
1, fetch命令
git fetch origin master
此命令同步下來的代碼并不會合并到任何分支上睛榄,而是存放在origin/master分支上
git diff origin/master 查看遠程版本庫作了哪些修改
git merge origin/master 將origin/maste分支上的修改合并到主分支上
2荣茫,pull命令
git pull origin master 將fetch 和 merge 命令一起執(zhí)行想帅,獲取最新代碼并且合并
_將代碼托管至 github上
方法1:github上新建倉庫,clone至本地场靴,將想要公開的代碼提交至這個倉庫再push到GitHub倉庫中,代碼便會被公開港准。
方法2:git remote add origin <倉庫地址>
本地倉庫與遠程倉庫連接
_github中Tag的應用
git tag -a v1.0 -m "add a tag" 創(chuàng)建名為v1.0的Tag
git tag 查看所有Tag
git tag -l 'v1.0' 查看具體某個版本Tag
git show v1.0 展示Tag v1.0具體信息
git push origin v1.0 共享至github
git push origin --tags 所有Tag共享至github
git tag -d v1.0 刪除某個Tag
git push origin :refs/tags/v1.0 刪除遠程某個Tag
git checkout v0.1 切換到名為v0.1的Tag
git checkout -b bt v0.1 創(chuàng)建一個名為bt的分支旨剥,包含v0.1Tag的代碼
_技巧應用
場景一:
回到某個節(jié)點,修復BUG浅缸,合并到主干
git reset 回溯歷史版本
git log 查看歷史日志轨帜,記錄要回到節(jié)點的ID哈希值
git reset --hard ID哈希值 回溯到某個節(jié)點
git checkout -b fix-b 創(chuàng)建修復Bug分支fix-b
修復Bug
git relog 查看當前倉庫執(zhí)行過的操作日志,記錄ID哈希值
git checkout master 回到主分支
git reset --hard ID哈希值 推進到之前的節(jié)點
git merge --no-ff fix-b 合并fix-b分支
git add / git commit 提交至倉庫
場景二:
要修改上一條提交信息
git commit --amend
在編輯器中修改提交信息衩椒,保存蚌父,關閉編輯器
場景三:
將一次小的修改哮兰,提交至上一次提交中,壓縮成一個歷史記錄
git rebase -i
git rebase -i HEAD~2 選定當前分支中包含HEAD在內(nèi)的兩個最新歷史記錄為對象苟弛,并在編輯器中打開
顯示為
pick id 提交信息1
pick id 提交信息2
更改為
pick id 提交信息1
fixup id 提交信息2
保存喝滞,關閉編輯器
場景四:
分支的協(xié)作開發(fā):同事1創(chuàng)建某個功能分支,并同步到遠程倉庫膏秫,同事2獲取遠程的分支右遭,提交更改,同步更新缤削,同事1獲取最新更新窘哈。
1,git checkout -b feature-D 同事1創(chuàng)建分支
2亭敢,git push -u origin feature-D 同事1push至遠程倉庫
3滚婉,git clone git@github.com:...
git branch -a 添加-a可以同時查看本地和遠程倉庫的信息
如果已克隆至本地倉庫,可省略...
git checkout -b feature-D origin/feature-D 將feature-D分支獲取至本地
修改...
4帅刀,git commit -am "###" 提交
5满哪,git push 推送至遠程倉庫
6,git pull origin feature-D 同事1獲取分支最新代碼
場景五:
github上下載某個分支代碼
git clone -b feature-b git@github.com:...
下載名為feature-b的分支代碼
場景六:
github上 查看分支間差別
比如想查看feature-a 和 feature-b分支之間的差別劝篷,可以將分支名加入到URL里
https://github.com/rails/rails/compare/feature-a...feature-b
查看幾天前的差別
https://github.com/rails/rails/compare/master@{7.day.ago}...master
時間單位{day.week.month.year}
查看與指定日期之間的差別
https://github.com/rails/rails/compare/master@{2018-01-01}...master