Git初学的学习笔记(3)

五.回滚操作
  如何放弃当前的修改是我之前一直想知道的,现在有答案了。
  回滚包括将stage的文件回滚到unstaged的状态和将modified的文件回滚到修改之前的状态,即回滚到版本库中最近一次提交的内容。
 从staged->unstaged: git reset HEAD <文件>
 从modified->unmodified:git checkout --<文件>(这个命令是git 1.6.1和之后的版本才有的,但是注意风险,因为一旦做了这个操作,修改后的内容就找不回来了)


问题:如何回滚版本库里的文件?
网上参考答案:
------------------------------------------BEGIN---------------------------------------------------
git reset是指将当前head的内容重置,不会留log信息。
git reset HEAD filename  从暂存区中移除文件
git reset –hard HEAD~3  会将最新的3次提交全部重置,就像没有提交过一样。
git reset –hard commit (38679ed709fd0a3767b79b93d0fba5bb8dd235f8) 回退到 38679ed709fd0a3767b79b93d0fba5bb8dd235f8 版本
根据–soft –mixed –hard,会对working tree和index和HEAD进行重置:

git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容
--------------------------------------------END---------------------------------------------------


六.远程版本库
  从远程拷贝git clone URL
  查看远程版本库的branch信息:进入克隆下来的目录,git remote,可显示远程的branch。
  git remote -v可显示远程URL

Git初学的学习笔记

当远程版本库有分支时,你可以选择添加某一个分支
git remote add <别名> <分支URL>
例如 git add pb git://github.com/paulbone/ticgit.git
现在再git remote -v就可以看到origin和pb两个branch了,其中origin是default的。

Git初学的学习笔记

可以取出某个分支的最新代码:git fetch <分支>,可以看到pb/master便是取出的代码,它并没有合并到当前的工作目录里。如果要fetch并merge的话可以用git pull <分支>

Git初学的学习笔记

六.分支的建立与rebase
  创建分支:git branch <分支>
  切换分支:git checkout <分支>
  将另一个分支的内容合并到本分支:先切换到要被合并内容的分支,然后git merge <另一分支>
  merge时当同一个文件同一部分产生了内容冲突时,需要手动修改冲突的文件然后再stage该文件。可以用git mergetool来图形化操作。
  查看已经merge到本分支的所有分支:git branch --merged
  可以删除已经merge过的分支:git branch -d <分支>
  查看没有merge到本分支的所有分支:git branch --no-merged
  删除没有merge过的分支:git branch -D <分支>, 即强制删除


七.远程分支

linux

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/19559.html