Git / SVN 常用命令

1.1. git log

git log -p 或者 git log -p filename -p 展开显示每次提交的内容差异,可以指定文件名只查看某文件的个性历史。

git log -2 -2 仅获取最近的两次更新。

git diff HEAD tt.txt 查看当前文件被修改过的内容(相比于上一次提交)

$ git log --stat --stat,仅显示简要的增改行数统计。

$ git commit -m 'initial commit'
$ git add forgotten_file
$ git commit --amend

上面的三条命令最终只是产生一个提交,第二个提交命令修正了第一个的提交内容。

1.2. git fork 代码提交/更新

  • 主分支 EMAP/app.git
  • 从分支 ccf/app.git

  • 从主分支拉取代码 git pull EMAP/app master

  • 提交到从分支本地仓库 git commit -m -a "备注"

  • 更新到从分支远程仓库 git push

1.3. git 仓库信息

  1. 添加新的 remote 信息 git remote add master EMAP/app2.git

  2. 修改远程仓库信息

    git remote set-url origin xxx.git

  3. 获取远程分支信息 git fetch EMAP/app2.git

  4. 新建分支并切换到新的分支 git checkout -b new_branch

  5. new_branch 添加远程地址 git remote add new_branch EMAP/app3.git

    必须要添加分支信息!

  6. 添加新分支(需要有提交信息) git branch abc

  7. 合并 a_branch 到当前分支 git merge a_branch -m ""

  8. 删除分支 git branch -d b_branch

  9. 合并单个文件

branch1某个文件打补丁 patch合并到分支master

git checkout master
git checkout --patch branch1 c.txt

branch1某个文件copy到分支master

git checkout master
git checkout branch1 c.txt

1.4. git tag

tag:标签,可以针对某一时间点的版本做标记,常用于版本发布。

1.4.1. 列出标签

$ git tag # 在控制台打印出当前仓库的所有标签
$ git tag -l ‘v0.1.*’ # 搜索符合模式的标签

1.4.2. 打标签

git 标签分为两种类型:轻量标签和附注标签。轻量标签是指向提交对象的引用,附注标签则是仓库中的一个独立对象。建议使用附注标签。

创建轻量标签

$ git tag v0.1.2-light

创建轻量标签不需要传递参数,直接指定标签名称即可。

创建附注标签

$ git tag -a v0.1.2 -m “0.1.2版本”

创建附注标签时,参数a即annotated的缩写,指定标签类型,后附标签名。参数m指定标签说明,说明信息会保存在标签对象中。

1.4.3. 切换标签

与切换分支命令相同,用 git checkout [tagname], 此时会指向 tagname 标签对应的代码状态,但现在处于一个空的分支上。

1.4.4. 查看标签信息

$ git show v0.1.2

1.4.5. 删除标签

$ git tag -d v0.1.2 # 删除标签

1.4.6. 补打标签

$ git tag -a v0.1.1 546cafe7790f5055c8839f9f6ddce6e09bb62810

打标签不必要在 head 之上,也可在之前的版本上打,这需要你知道某个提交对象的 commitId

1.4.7. 标签发布

git push 不会将标签对象提交到git服务器,我们需要进行显式的操作:

$ git push origin v0.1.2 # 将v0.1.2标签提交到git服务器
$ git push origin –tags # 将本地所有标签一次性提交到git服务器

1.5. git 版本管理

  1. 回退到指定提交的版本 git reset --hard commitId

  2. 将回退修改推到远程分支 git push -f -u origin master

  3. 将指定分支的指定文件 copy 到当前分支 git checkout master xx.txt

  4. 将指定分支的文件修改 patch 补丁合并到当前分支 git checkout --patch master xx.txt

  5. 回退某个文件到指定版本 git checkout commitId xx.txt

  6. 查看文件修改记录 git blame -- filename

  7. 回退某个指定提交

    git revert -n commitId

参考

results matching ""

    No results matching ""