状态比较

我们刚才一直还不太明白, 什么时候用git add. 什么时候不需要使用. 那我们现在就来一起来看一下文件的状态是怎么回事.

  • untracked: 文件未被加入的版本库中.
  • unmodified: 文件未被修改过.
  • modified: 文件已经被修改过了.
  • staged: 准备好, 可以提交到版本库中了

 

删除文件恢复

有时候, 我们不小心把文件给删除了. 想恢复这个文件时, 需要用到下面的命令.

我现在把仓库里的README这个文件给删除了. 然后再使用ls命令查看文件, 看看这个文件是否还存在.

 

$ rm README
$ ls
$ ls -al

文件已经被删除了, 这是我们使用linux基本命令去查看文件是不是还存在这个目录中.现在我们使用git去查看一下现在仓库是什么状态

$ git status

发现这个文件是误删了, 我们想把它恢复回来, 现在我们有办法吗? 如果没有将这个文件提交到仓库里, 我们是没有办法将它恢复的.

$ git checkout README

然后我们再用ls查看一下文件是否存在.

$ ls -al

再查看git仓库是状态

$ git status

说明, 只要将文件提交到git仓库中

版本回退

什么叫版本, 一次提交就相当于一个版本. 如果更准确的说是提交的回退. 每一次提交都会将修改的状态提交到仓库中保存着, 这些信息都保存那里呢?都保存在.git的目录下.

如果想回退到上次提交的版本, 那么需要使用git reset命令.

$ git reset --hard commitID

这里的commitID是你的最近一期的版本号,可以在git log中查看到,

在这里我们需要使用git reflog命令查看后一次提交的CommitID, 如果已经有了后一次提交的CommitID, 那么我们需要使用git reset命令恢复到前面提交版本.

$ git reflog

从仓库中删除文件

如果将文件从仓库中删除这个文件, 需要使用git rm.

$ git rm filename

这只是做了删除操作, 但没有真正的从仓库中删除, 我们只要将删除再做一次提交到仓库.

$ git commit

从版本库中忽略文件

如果在我们的仓库目录里会产生三方的临时垃圾文件或是

$ touch .gitignore

版本之间对比

$ git diff

$ git diff commitID1 commitID2

什么是patch

patch多指补丁的意思, 在这里更多的指程序有一些bug, 需要我们进行fixed, 那fixed源码文件就是patch.

patch实际上是保存两个文件的差异.

git生成patch

$ git format-patch -p1

转载于:https://www.cnblogs.com/mophy/p/7016022.html

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐