git log
git log -p
或者 git log -p filename
-p 展开显示每次提交的内容差异,可以指定文件名只查看某文件的个性历史。
git log -2
-2 仅获取最近的两次更新。
git diff HEAD tt.txt
查看当前文件被修改过的内容(相比于上一次提交)
$ git log --stat
–stat,仅显示简要的增改行数统计。
|
|
上面的三条命令最终只是产生一个提交,第二个提交命令修正了第一个的提交内容。
git fork 代码提交/更新
- 主分支 EMAP/app.git
- 从分支 ccf/app.git
从主分支拉取代码
git pull EMAP/app master
提交到从分支本地仓库
git commit -m -a "备注"
更新到从分支远程仓库
git push
git 仓库信息
添加新的 remote 信息
git remote add master EMAP/app2.git
获取远程分支信息
git fetch EMAP/app2.git
新建分支并切换到新的分支
git checkout -b new_branch
为 new_branch 添加远程地址
git remote add new_branch EMAP/app3.git
必须要添加分支信息!
添加新分支(需要有提交信息)
git branch abc
合并 a_branch 到当前分支
git merge a_branch -m ""
删除分支
git branch -d b_branch
合并单个文件
将branch1
某个文件打补丁 patch合并到分支master
将branch1
某个文件copy到分支master
git tag
tag:标签,可以针对某一时间点的版本做标记,常用于版本发布。
列出标签
|
|
打标签
git 标签分为两种类型:轻量标签和附注标签。轻量标签是指向提交对象的引用,附注标签则是仓库中的一个独立对象。建议使用附注标签。
创建轻量标签
$ git tag v0.1.2-light
创建轻量标签不需要传递参数,直接指定标签名称即可。
创建附注标签
$ git tag -a v0.1.2 -m “0.1.2版本”
创建附注标签时,参数a即annotated的缩写,指定标签类型,后附标签名。参数m指定标签说明,说明信息会保存在标签对象中。
切换标签
与切换分支命令相同,用 git checkout [tagname]
,
此时会指向 tagname 标签对应的代码状态,但现在处于一个空的分支上。
查看标签信息
$ git show v0.1.2
删除标签
$ git tag -d v0.1.2 # 删除标签
补打标签
$ git tag -a v0.1.1 546cafe7790f5055c8839f9f6ddce6e09bb62810
打标签不必要在 head 之上,也可在之前的版本上打,这需要你知道某个提交对象的 commitId
标签发布
git push 不会将标签对象提交到git服务器,我们需要进行显式的操作:
|
|
git 版本管理
回退到指定提交的版本
git reset --hard commitId
将回退修改推到远程分支
git push -f -u origin master
将指定分支的指定文件 copy 到当前分支
git checkout master xx.txt
将指定分支的文件修改 patch 补丁合并到当前分支
git checkout --patch master xx.txt
回退某个文件到指定版本
git checkout commitId xx.txt
查看文件修改记录
git blame -- filename