git操作手册

来源:互联网 发布:淘宝哪家大闸蟹好 编辑:程序博客网 时间:2024/05/02 14:15

先推荐两本书《pro_git_中文版本》、《git权威指南》

pro_git可以从git的官网下载:http://www.git-scm.com/book/zh/v2


gerrit:http://code.google.com/p/gerrit/

1、下载代码
  • repo init -u [url] -m [manifest.xml] -b [branch]

   将完整的repo及项目清单版本库(manifest.git)下载到当前路径下的.repo目录中。

   -u参数:设定清单库的git服务器地址。

   -b参数:检出清单库的特定分支。

   -m参数:当有多个清单文件时,可以指定清单库的某个清单文件为有效的清单文件。默认为default.xml。

  • repo sync

   参照.repo/manifest.xml清单文件,将项目所有相关的版本库全部克隆出来。


2、修改代码

  • repo start [branch] --all

   为所有项目以清单文件中为项目设定的分支或里程碑为基础,创建特性分支。特性分支的名称由参数[branch]制定。

  • vi [file]


3、上传代码

  • git rm [file]

   删除暂存区文件

  • git mv [file] [file']

   移动或重命名暂存区文件

  • git add [files]

   新增文件或添加文件修改到暂存区

  • git commit

   提交暂存区改动到本地版本库

  • repo sync

   同步远程库代码,针对当前提交分支的远程跟踪分支执行rebase操作。若有冲突则解决冲突,若无冲突则继续提交动作。

  • repo upload

   提交本地版本库改动到gerrit。


4、只同步某个git库

  • repo status

   查看要同步的git库的名字

  • repo sync <project>

   同步某个git库


5、最后一次提交,发现代码(或者提交log)有错误,或是提交被打回,怎么办

  • vi [file]

    修改代码

   只修改提交log请跳过此步

  • git add .

   添加修改到暂存区

   只修改提交log请跳过此步

  • git commit --amend

   修改提交log,但不要修改或删除change_id,否则此次提交上传到gerrit上时将无法与最后一次提交相对应。

  • repo upload

   将重做好的提交上传至gerrit。


6、提交回退

  • 要回退某个commit,可以使用gerrit上的“revertchange”操作。需要注意的是该操作只会为你在gerrit上自动生成一个回退提交[commit']。该回退提交[commit']还需要进行merge操作才能真正提交到远程库。


7、检出当前git库的某个历史版本

  • git checkout -b [branch] [commit]

   把[commit]参数对应的版本检出到-b参数指定的分支


8、查看tag

  • git tag

   查看当前git库的tag列表

  • git show [tag]

   查看某个tag的信息


9、已经修改了代码才想起来自己没有建分支

    千万不要reposync,否则前功尽弃

  • git branch [branch]
  • repo start [branch'] --all

   

10、A同学和B同学都修改了C文件并同时上传了gerrit,A同学的提交被merge到了远程库,B同学的提交由于冲突无法merge,B同学应该怎么办。

   B同学在本地解决冲突后再提交

  • repo sync

   同步远程代码

  • git rebase [remote branch]

   针对当前提交分支的远程跟踪分支执行rebase操作。

  • repo upload


11、获取帮助

  • repo help [command]
  • git help [command]
  • repo help
  • git help


12、查看日志

  • git log

   查看整个git库的提交记录

  • git log [file]

   查看某个文件的提交记录


13、查看git配置信息

  • git config --list


14、把另一个本地分支的commit应用到当前分支

  • git cherry-pick [commit_id]


15、补丁的使用

  • git format-patch [commit_1]..[commit_2]

  把从[commit_1]到[commit_2]之间的提交做成patch

  • git format-patch [commit]

  把从[commit]开始的提交都做成patch

  • git am [patch]

   把[patch]应用到当前分支


16、查看所有分支和最后一次提交

  • git branch -a -v


17、生成repo仓快照

repo manifest -r -o snapshot.xml
原创粉丝点击