Git教程及Oh My Zsh 命令行插件

Oh My Zsh

这篇文章有详细的介绍,按照文章安装配置就行了
https://www.jianshu.com/p/871ab5cb2b93
安装它的好处是
git在哪个分支都可以显示出来。
不用区分文件夹大小写,直接拼,如desktop,按下tab就可以了。

安装zsh后的效果

git常用操作

克隆至本地:

git clone <版本库的网址> 将远端仓库克隆到本地

切换分支:

进入到本地目录项目根目录下
git checkout develop //切换至develop分支,git checkout <分支名>

提交代码:

先从远程仓库拉取更新。
//git pull <远程主机名> <远程分支名>
git pull origin develop

//暂存改动内容
git add .

//提交至本地仓库,一定要写提交信息
git commit -m "msg"

//推送至远程仓库,git push <远程主机名> <本地分支名>
git push origin develop

git pull和git pull --rebase的区别

使用下面的关系区别这两个操作:
git pull = git fetch + git merge
git pull --rebase = git fetch + git rebase

现在来看看git merge和git rebase的区别。

假设有3次提交A,B,C。

907596-20160922155014777-999552544.png

在远程分支origin的基础上创建一个名为"mywork"的分支并提交了,同时有其他人在"origin"上做了一些修改并提交了。

907596-20160922155038152-1733703139.png

其实这个时候E不应该提交,因为提交后会发生冲突。如何解决这些冲突呢?有以下两种方法:

1、git merge
用git pull命令把"origin"分支上的修改pull下来与本地提交合并(merge)成版本M,但这样会形成图中的菱形,让人很困惑。

907596-20160922155107949-1520786903.png

2、git rebase
创建一个新的提交R,R的文件内容和上面M的一样,但我们将E提交废除,当它不存在(图中用虚线表示)。由于这种删除,小李不应该push其他的repository.rebase的好处是避免了菱形的产生,保持提交曲线为直线,让大家易于理解。

907596-20160922155132715-596060966.png

在rebase的过程中,有时也会有conflict,这时Git会停止rebase并让用户去解决冲突,解决完冲突后,用git add命令去更新这些内容,然后不用执行git-commit,直接执行git rebase --continue,这样git会继续apply余下的补丁。
在任何时候,都可以用git rebase --abort参数来终止rebase的行动,并且mywork分支会回到rebase开始前的状态。

更多

  1. Git

    • Git教程By廖雪峰.pdf百度网盘下载链接
    • 高质量的Git中文教程,来自国外社区的优秀文章和个人实践 · GitHub
    • git-scm
    • 廖雪峰-Git教程
    • git-for-windows
    • GitHub 添加 SSH keys
    • gogithub
    • git常规命令练习
    • git的资料整理
    • 我所记录的git命令(非常实用)
    • 企业开发git工作流模式探索部分休整
    • GitHub 漫游指南
    • GitHub秘籍
    • 使用git和github进行协同开发流程
    • 动画方式练习git
    • 版本管理工具介绍—Git篇
    • 版本控制入门 – 搬进 Github
    • Git动画演示
  2. SVN

    • 版本管理工具介绍---SVN篇

你可能感兴趣的:(Git教程及Oh My Zsh 命令行插件)