Git 常用情景

  最近的项目管理用的是GIT,刚开始只是打算能用即可,没打算好好学习它。但是GIT的魅力很大啊,让人禁不住想多了解了解。时间有限,历史、背景、来源,都无需多说。我就把常常能碰到的应用场景列举一下,一方面分享给大家查阅,一方面自己备忘吧。我工作的环境是 Ubuntu, 虽然 Git 在多个平台都是可以使用的,但是仍然略有差别。

  1. 安装Git。当然从源码安装是可以的,开源项目嘛。
    $ apt-get install git
  2. 克隆代码库。我的项目是托管在 bitbucket , 推荐一下,很好用。当然,没用过其他的 github, google code等等,所以也没有发言权了。这里的adress可以是代码托管的服务器地址,也可以是一个本地库的路径等等。
    $ git clone address
  3. 设置用户名和邮件地址。很重要的步骤,这个信息会显示在你的提交信息上,这样团队才知道是谁提交的代码。
    $ git config --global user.name "John Doe"
    $ git config --global user.email johndoe@example.com
  4. 设置默认的merge工具。这个不是必须的,随后可以手动选择的。设置上会很方便,我一般就用meld了, meld需要额外安装。
    $ git config --global merge.tool meld
  5. 查看git的设置信息。下面是查看git全局信息,比较常用的。第二条是查看具体某项配置的信息。
    $ git config --list
    $ git config user.name
  6. 查看git命令的帮助信息。三种方式。
    $ git help <verb>
    $ git <verb> --help
    $ man git-<verb>
  7. 在代码库目录下,查看代码状态。这个真心建议仔细看看,输出的信息很有讲究,需要实践以进一步学习。
    $ git status
  8. 让git追踪一个新文件。正常创建的文件,需要先被git追踪,才能进而被git管理。第二条命令是对所有未追踪的文件添加追踪,容易track无用文件,慎用。
    $ git add fileName
    $ git add -A
  9. 提交。-m不是必须的,但是最好加上,他让你能给本次提交添加comment。
    git commit -m “”
  10. 查看不同。第一条是查看两个分支的区别。第二个是查看两次提交的区别。第三个是比较工作区和上次提交的差别。git diff 也是可以的,但是没有可视化工具,如meld,是很不直观的。
    git difftool b1 b2
    git difftool c1 c2
    git difftool HEAD
  11. 查看提交的历史。
    $ git log
    $ git log -p -2
    $ git log --since=2.weeks

    git log通常就够用,后面的是加一些限定条件的,有许多限定条件可用,如果你需要的话。

  12. 修改最后一次提交的状态。
    git commit --amend -m "xxx"

    如果你刚刚提交了,但是漏掉了一个文件,又不想再提交一次。那么用这条指令,相当与修改了你最后一次提交,并且会覆盖掉你最后提交的信息,显示一次提交。

  13. unstage一个已经stage的文件。
    git reset HEAD fileName

    说白了,就是某个文件我add了,但是我由不想提交了,怎么办?执行这个。

  14. 还原修改过的文件。
    git checkout -- <file>

    一个文件我改了,然后我又不想要这个改动了,还原回去用这个命令。

  15. 给git的命令起别名。
    git config --global alias.br branch

    这个绝对好用有木有,有的命令太长,好了,设置简单的别名即可啊。这只是个简单的例子,更多精彩查阅文档。

  16. 把提交push到代码库。
    git push origin branch

    虽然你commit了,但那是在你的本地,如果想要把你的提交同步到服务器,那么需要git push 命令。branch是你打算push到的远程分支名字。

  17. 追踪远程分支。
    $ git checkout -b serverfix origin/serverfix

    创建本地分支 serverfix 来追踪 远程的分支 origin/serverifx.

  18. 更新代码库。
    $ git pull origin

    我知道这个方法不是最安全的,因为git pull命令会自动merge,但是我不得不说,这个是我最常用的,他会把远程代码库的更新pull到你本地。并且自动merge当前分支。

  19. 还原当前分支到某次提交。
    $ git reset --hard ”commit md5“
    $ git reset --soft ”commit md5“

    --hard 和 --soft的区别在于,前者会彻底覆盖掉你本地未提交的修改,而后者会保留你的修改。commit md5 是你执行 git log 时,看到的commit的md5值。

  20. 合并分支。
    $ git merge branch1

    把branch1分支合并到当前分支。有可能很顺利,也有可能会发生冲突,仔细看提示信息,再提交!

  21. 手动解决冲突。
    $ git mergetool

    如果合并分支的时候冲突了,用这个命令手动解决。这是常有的事儿。

  22. 创建分支。 
    $ git branch -b "branch1"

    创建一个叫“branch1”的分支。

  23. 删除本地分支。
    $ git branch -d "branch1"
  24. 切换分支。
    $ git checkout branch1

    切换到branch1分支。

  25. 删除远程分支。
    $ git push origin :branch1

    删除远程的branch1分支。

  一个好的 git 网站, http://gitready.com/

  暂时想到这些吧,以后想到了再补充。我相信你会用了这些,就可以完成基本的代码库管理了。另外,git是很有意思的一个东西,与其他的版本控制系统(VCS)很不一样,如果想要深入学习,还有很长的路要走。这里推荐一本电子书,《Pro Git - Scott Chacon.pdf》,简单而全面,很容易看懂。谢谢!

原文地址:https://www.cnblogs.com/beautiful-scenery/p/3525618.html