zoukankan      html  css  js  c++  java
  • 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

     

  • 相关阅读:
    python
    python
    python
    python
    python
    python
    python
    python
    人生苦短,我用python,为什么选择python,python简介
    Mysql-查询
  • 原文地址:https://www.cnblogs.com/wangmingshun/p/5414750.html
Copyright © 2011-2022 走看看