git的使用

git的三种文件状态

常用基本命令的使用

问题

  1. git clone url和 git pull有什么区别
  2. 本地仓库和远程仓库的区别?
  3. origin 代表什么?

git add

  • git add -A: stages All
  • git add .: stages new and modified, without deleted
  • git add -u: stages modified and deleted, without new

git clone 某个版本

通过以下三步执行:

  1. git clone + rep : 先clone整个资源
  2. git log: 查看版本号
  3. git checkout +版本号 :clone需要的版本

git 查看commit 更改信息

  • 仅仅想看最近谁有提交,以及提交的描述
    git log
  • 仅仅想看最后一次的提交
    git log -n 1
  • 想看到最近一次提交所有更改过的文件
    git log -n 1 --stat
  • 想看到最近一次提交所有更改的细节
    git log -n 1 --p
  • 查看某个文件的修改历史
    git log -p <filename>
  • 查看最近两次的更改内容
    git log -p -2

更改commit信息

如果git commit后,但是还没有git push,而又发现写错了git commit,需要更改,则可以使用git commit --amend来重新修改commit信息

修改git执行的编辑器

默认情况下,安装git时会指定vi/vim作为默认编辑器,可以使用:
git config --global core.editor emacs来更改编辑器,这里更改为emacs

撤销

  • 如果修改了很多文件,发现修改错误了,而这个错误又无法找出来修改,但是此时还没有git add提交,那么可以使用下面的命令恢复到上一次提交的状态
    git reset --hard HEAD

  • 如果修改了文件,同时也推送到了github上,但是发现提交了错误的代码,需要回到上一次提交状态,那么可以使用下面的代码
    git reset --hard HEAD^

  • 如果需要回到之前提交的某个分支,可以通过下面的方法来操作
    git log : 查看要回到的分支的 commit 字段,如下所示

    image.png

    然后使用 git reset --hard 8df0 回退即可

  • git add 添加 多余文件
    当使用git add . 添加了多余的文件时,需要撤销git add .,可以使用如下的撤销操作:
    git statue : 先使用该命令查看下add了哪些文件
    git reset HEAD : 如果该命令后面不跟文件的话,就是把上次add的所有文件都撤销掉
    git reset HEAD + 文件1: 表示撤销 文件1 的add 操作

  • git commit 错误操作
    如果不小心弄错了git add后,同时又git commit了,那么可以执行以下撤销操作:
    git log: 查看git log信息
    commit xxxxxxxxxxxxxxxxxxxxxxxxxx
    Merge:
    Author:
    Date:
    然后找到执行: git reset commit_id
    注意:

    • git reset commit_id:回退到上一个 提交的节点 代码还是原来你修改的,也就是说你修改 的代码不会被更改,只是清除了暂存处
    • git reset --hard commit_id:回退到上一个commit节点, 代码也发生了改变,变成上一次的
  • 如果要是 提交了以后,可以使用 git revert
    还原已经提交的修改
    此次操作之前和之后的commit和history都会保留,并且把这次撤销作为一次最新的提交
    git revert HEAD 撤销前一次 commit
    git revert HEAD^ 撤销前前一次 commit
    git revert commit-id (撤销指定的版本,撤销也会作为一次提交进行保存)
    git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去,版本会递增,不影响之前提交的内容。

分支合并

例如将zhangjie分支合并到develop分支
步骤如下:

  1. 先将zhangjie分支push到服务器
  2. 切换到develop分支,然后将develop分支上的代码pull下来,保证本地保存有最新的develop分支代码
  3. zhangjie分支合并到develop分支
  4. develop分支push到服务器
    这样便完成了分支合并
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。