1、Git简介

Git是强大的分布式版本控制系统。它不同于CVS、SVN等集中式版本控制系统,有如下一些优点:

  • 快速
  • 离线提交代码
  • 创建分支方便,不需要创建多目录
  • 回退,可以回退到过去,也可以回退到将来

想给GitHub上别人的项目作代码贡献,分三个步骤:

  • fork别人的项目
  • 在自己的分支上作代码修改
  • 发起pull request给别人审核

2、Git常用命令

同一个项目多人进行开发时,一般的git命令操作流程如下:

第一步,拉取远程master分支

git clone https://github.com/yangchenglong/yangchenglong.github.io.git

第二步,从master分支创建新的分支

git checkout -b 20160423-feature

第三步,查看修改了哪些文件

git status

第四步,查看修改了哪些内容

git diff

第五步,确认修改无误后,将修改的内容保存到暂存区

git add .

第六步,提交修改的代码

git commit -m ‘add some new functionality’

第七步,推送当前分支到远程仓库的同名分支

git push origin 20160423-feature:20160423-feature

3、其他命令

删除本地分支

git branch -D 20160423-feature

删除远程分支

git push origin :20160423-feature

显示从最近到最远的提交日志

git log

显示简化后的日志信息

git log --pretty=oneline

回退到之前的某个版本

git reset --hard HEAD@{1}
git reset --hard <提交ID>

查看本地每一次提交命令(包含回退命令)

git reflog

丢弃工作区的修改,此时没有提交到暂存区

git checkout -- <file>

丢弃暂存区的修改

git reset HEAD <file>

删除暂存区的文件,但不删除工作区的文件

git rm –-cached <file>

丢弃修改分3种场景:

  • 场景1:还没有使用 git add 将修改添加到暂存区,可以使用命令git checkout -- <file>丢弃工作区的修改:
  • 场景2:已经使用 git add 将修改添加到暂存区,要丢弃修改,需要分两步:
    • 第一步,使用命令git reset HEAD <file>,丢弃暂存区的修改,工作区不受影响,即回到场景1;
    • 第二步,使用场景1的git checkout -- <file>命令丢弃工作区修改。
  • 场景3:如果要删除已经使用 git commit 提交的修改,使用 git reset --soft HEAD@{1},可以保留暂存区和工作区的修改。

参考资料