教程网站:https://git-scm.com/book/zh/v1
打印过去提交的三百次日志
$git log -300
回退版本
$git reset --hard commit num
强制推(慎用)
$git push -f
git checkout主要有三个作用:
第一个就是切换分支。例如你从远程仓库clone下来所有的源代码,你git branch一下会看到你通常是在master,如果你想切换到某一个分支上呢?git checkout <branchname>
第二个就是放弃对某个文件的修改。例如你想放弃对某个文件Hello.cpp的修改,git checkout -- <Hello.cpp>
第三个就是新建一个分支,git checkout <-b> <branchname>,不加-b的话只新建不切换到新的分支上,加-b新建并切换到该分支上
git reset主要是取消上一次的操作,具体用法有很多,说两个:
第一个取消merge,git reset --hard ORIG_HEAD,这样会退回到merge前的代码。
第二个就是取消commit,git eset HEAD~<num> <-soft/-hard>,取消上num次的commit
第三个是将文件从stage(追踪的库)中移除,git reset HEAD <filename>
大公司项目管理:
两个git仓库,一个本地私有(个人分支personal),一个服务端公开(主干代码master)
Forking工作流的一个主要优势是,贡献的代码可以被集成,而不需要所有人都能merge代码到仅有的中央仓库中。 开发者push到自己的服务端仓库,而只有项目维护者才能merge到正式仓库。 这样项目维护者可以接受任何开发者的提交,但无需给他正式代码库的写权限。
改乱了工作区某个文件的内容,想直接丢弃工作区的修改
$git checkout -- filename;
HEAD
指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id