git常用命令总结

forward

http://www.oschina.net/question/31384_157479

---------------------------

一、本地操作

1、文件添加到暂存区
  git add *.txt test.java
  git add . 添加所有修改过的文件到暂存区,包括未跟踪文件,忽略文件不包含

2、比较工作目录和暂存区快照之间的差异,也就是修改之后没有add的内容:
  git diff

3、查看repository的状态
  git status

4、比较上一次提交的快照和暂存区中文件的差别,两个命令效果一样:
  git diff --staged(1.6以上版本可用),git diff –cached

5、忽略某些文件,建立名字为.gitignore的文件,将需要忽略的文件添加进去即可。

6、提交更新
  git commit –m “描述内容”

7、跳过暂存区直接提交,加上-a参数
  git commit –a –m “跳过暂存区提交”

8、删除仓库中的某个文件
  8.1、直接删除文件
    使用 git rm xxx.txt ,之后再进行commit即可删除。
  8.2、强制删除add到暂存区的文件,使用参数-f
    git rm –f xxx.txt

9、将某些文件从跟踪列表中移除,需要递归的话,使用 \
  git rm --cached xxx.txt
  git rm --cached \*.class 将当前目录及其子目录中的以class结尾的文件从跟踪列表移除。
  git rm --cached -r 文件名 递归移除

9、重命名文件
  git mv delete.txt add.txt

10、查看log
  git log –p -2
  -p 选项展开显示每次提交的内容差异
  -<n> 仅显示最近的若干条提交
  --stat 仅显示简要的增改行数统计
  --pretty 自己制定日志显示格式
  =oneline 将每个提交放在一行显示
  = format
  --graph开头多出一些 ASCII 字符串表示的简单图形,形象地展示了每个提交所在的分支及其分化衍合情况

11、提交完了才发现漏掉了几个文件没有加,或者提交信息写错了
  git commit --amend

12、取消已暂存的文件
  git reset HEAD xxx.txt

13、取消对工作区文件的修改,--是转义的意思,比如有个文件叫master,如果不加--就切换到master分支上了,加了代表--后的一定是文件。主要是撤销工作区文件的修改,提交到暂存区后不会回滚到工作区。比如文件内容是 aaa,版本库也是 aaa。现在修改为 aaabbb,使用该命令相当于把aaabbb修改为aaa,前提是没有将文件提交到暂存区(add)或版本库(commit).相当于手工把aaa后的bbb删除了,只留下aaa。

  git checkout -- xxx.txt

14、版本回退

  通过上面10中可以看到每次提交的 id号。

  git reset --hard id

二、远程仓库相关

1、从指定远程库下载项目
  git clone URL
  查看关联远程仓库信息
  git remote 或者 git remote –v

2、 添加一个新的远程仓库
  git remote add [shortname] [url]
  git remote add csb URL

3、 从远程仓库抓取数据(远程仓库中有的而本地没有的数据)
  git fetch [remote-name] 不会执行merge命令
  git pull [remote-name] 会自动执行merge命令

4、 推送数据到远程仓库
  git push [remote-name] [branch-name] 或

  git push -u [remote-name] [branch-name]

5、 查看远程仓库信息
  git remote show [remote-name]

6、 远程仓库的重命名
  git remote rename [old-nane] [new-name]

7、 删除远程仓库
  git remote rm [remote-name]

8、 创建一个含有附注的标签(annotated)
  git tag –a v1.0 –m “my first annotated tag”
  git show [标签名] 显示标签的版本信息

9、 创建一个含有签署的标签(signed)
  git tag –s v1.1 –m “my first signed tag”

10、创建一个轻量标签(lightweight)
  git tag v1.2

11、验证标签
  git tag –v [tag-name]

12、后期加注标签
  git log –pretty=oneline
  git tag –a [tag-name] [校验和]

13、标签推送到远程仓库
  git push origin [tag-name]
  git push origin --tags 将所有标签推送

三、常见问题

①fork后修改本地代码,并提交后,解决冲突

当我们fork了别人的工程之后。我们在本地修改了该工程,并且提交到了远程仓库。当我们想要将别人的工程合并到我们的工程上的时候。如果出现了合并不成功,提示有冲突的时候。
1、首先将别人的工程的远程仓库添加到我们本地的分支。
git remote add [别名] [别人工程的URL]
git remote -v 查看我的的远端分支情况
$ git remote -v eagleapp URL

2、在master上直接合并添加了的分支。
git fetch eagleapp
git merge eagleapp/master

3、之后就会出现冲突提示,我们就手动去解决冲突。

4、解决后,将冲突文件提交到远程仓库。
git add filename
git commit -m "xxxx"
git push -u origin
5、在将别人的工程合并到我们的工程上就行。

②如何删除远程仓库文件

Git 删除远程仓库文件
一种是 git rm --cached "文件路径",不删除物理文件,仅将该文件从跟踪列表中删除;
一种是 git rm --f "文件路径",不仅将该文件从跟踪列表中删除,还会将物理文件删除(不会回收到垃圾桶)
执行上面其中一步,如果没有和远程仓库关联,需要先:
git remote add 别名(会作为下一步的远程仓库名) url
之后:
git push -u 远程仓库名 分支名

例如: git
rm --cached -r 文件名 git commit -m "123" git push -u oringin master

 

posted @ 2016-04-20 22:23  请叫我大表哥  阅读(686)  评论(0编辑  收藏  举报