1_创建代码仓库
git init 创建Repository
ls -al 查看内容
git add file 添加文件/ add . 表示添加所有文件
git commit -m "First commit." 提交到Repository
2_查看修改状态
git status 查看文件修改情况
git diff 查看所有文件的更改内容
git diff app/src/main/.../MainAcitvity.java 查看具体文件的更改内容
git checkout app/src/main/.../MainAcitvity.java 撤销具体文件的更改内容
<使用Andorid studio 时,通常用revert撤销更改>
当文件的更改执行过add命令后,无法用checkout命令还原,
此时,git reset HEAD app/src/main/.../MainAcitvity.java取消添加,再运行git checkout命令撤销修改。
git log 查看提交记录<包括提交id,提交人,提交日期,提交记录>
git log (id) -1 只看一行记录
git log (id) -1 -p 查看该行记录具体修改了什么内容
git log --graph 以图表形式查看
_3分支的用法
git branch 查看当前版本库当中有哪些分支
git branch version1.0 创建名为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远程版本库协作
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 命令一起执行,获取最新代码并且合并
_将代码托管至 github上
方法1:github上新建仓库,clone至本地,将想要公开的代码提交至这个仓库再push到GitHub仓库中,代码便会被公开。
方法2:git remote add origin <仓库地址>
本地仓库与远程仓库连接
_github中Tag的应用
git tag -a v1.0 -m "add a tag" 创建名为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 创建一个名为bt的分支,包含v0.1Tag的代码
_技巧应用
场景一:
回到某个节点,修复BUG,合并到主干
git reset 回溯历史版本
git log 查看历史日志,记录要回到节点的ID哈希值
git reset --hard ID哈希值 回溯到某个节点
git checkout -b fix-b 创建修复Bug分支fix-b
修复Bug
git relog 查看当前仓库执行过的操作日志,记录ID哈希值
git checkout master 回到主分支
git reset --hard ID哈希值 推进到之前的节点
git merge --no-ff fix-b 合并fix-b分支
git add / git commit 提交至仓库
场景二:
要修改上一条提交信息
git commit --amend
在编辑器中修改提交信息,保存,关闭编辑器
场景三:
将一次小的修改,提交至上一次提交中,压缩成一个历史记录
git rebase -i
git rebase -i HEAD~2 选定当前分支中包含HEAD在内的两个最新历史记录为对象,并在编辑器中打开
显示为
pick id 提交信息1
pick id 提交信息2
更改为
pick id 提交信息1
fixup id 提交信息2
保存,关闭编辑器
场景四:
分支的协作开发:同事1创建某个功能分支,并同步到远程仓库,同事2获取远程的分支,提交更改,同步更新,同事1获取最新更新。
1,git checkout -b feature-D 同事1创建分支
2,git push -u origin feature-D 同事1push至远程仓库
3,git clone [email protected]:...
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 [email protected]:...
下载名为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