博客更新: tengfeios.com
介绍一些关于 Git 的基本操作
Git 的基本操作
最开始需要一个让 Git 关联一个文件见, 可以使用 Git init 命令
Git init
在当前目录下创建. Git 文件夹, 使当前文件夹成为 Git 仓库
现在本地有一个 Git 仓库了, 就可以告诉 Git, 我想提交的文件有哪些, 可以使用 Git add 命令
Git add 文件名
把文件放入暂存区, 为建立历史作准备
执行 Git add 之后, Git 已经知道, 我们要提交的文件有哪些了, 那么现在可以使用 Git commit 命令提交了
Git commit
提交暂存区的所有文件, 使文件成为一条 Git 记录. 执行 Git commit 命令默认进入 VIM 界面, 我们在 VIM 里面输入提交的备注, 使用: wq 就可以提交成功了.
执行 Git log
Git log
显示提交历史
Git 分支
什么是分支
在我们的开发工作中, 可能要同时处理多个需求. 那么每个需求和每个需求都是没有关系的, 但是他们都是同一个项目的需求.
传统的工作方式, 在同一份代码中去开发很多新需求, 新代码的稳定性是最差的, 会出现测试困难, 开发不好定位等一些问题.
Git 分支可以解决这个问题, 我们在当前主分支上开辟一个新的分支, 继续 Git commit, 后面的提交历史不会影响主分支. 最后我们这个分支的需求通过测试以后合入主干.
也有公司, 有这样的场景, 他们的项目要出一个新版本, 比如 2.0 版本, 但是 1.0 还要继续维护. 这个时候, 可以分别给每一个版本都建立一个分支. 这样子, 1.0 版本分支上可以修复一些 bug, 但是他没有 2.0 的新特性.
不同的公司对于 Git 分支的使用有不同的规范.
总而言之, 分支的出现是为了分离提交的. 新的一个开发方向可以考虑创建一个分支. 新分支稳定后合入主干.
现在我们去创建一个分支
Git branch 分支名
创建一个新的分支, 新分支与老分支的提交记录是一样的.
创建完毕后, 我们可以使用 Git checkout 命令切换到新的分支
Git checkout 分支名
切换分支
切换到新分支之后就可以进行新的提交了.
新的分支功能稳定后, 就可以使用 Git merge 命令把新分支合并到主分支上面去了.
Git merge
在主分支执行 Git merge 要合并的分支名, 完成合并
远程仓库
我们以前的所有操作都是在本地仓库进行的, 一般项目会有多人协作开发. 我们把本地的修改更新远程仓库. 这样就可以把代码共享给同事.
首先我们添加一个远程仓库
Git remote add 远程仓库名 远程仓库链接.
远程仓库名, 可以随便写, 一般是 origin.
- Git remote
- Git remote
获取所有远程仓库, 使用 Git remote -v 可以获远程仓库链接
Git remote add 远程仓库名 远程仓库链接
添加一个 Git 远程仓库, 可添加多个远程仓库
Git remote rm 远程仓库名
删除一个远程仓库
现在就可以使用 Git push 向远程仓库更新代码啦.
Git push 远程仓库名 远程仓库分支名
把当前本地分支推入远程仓库.
如果没有远程仓库, 可以使用 GitHub, 码云之类的网站创建一个.
在我们执行 Git push 向服务器推代码的时候, 别人可能也在 Git push, 我们需要通过 Git pull 更新其他人的代码.
Git pull 远程仓库 远程仓库分支
把远程仓库的分支下载到本地, 并将远程分支与当前分支合并.
Git 冲突
实际开发过程中会产生一个经常遇到的问题.
如果其他人的提交和我们的提交同时修改了同一个文件, 那么 Git merge 会怎样合并呢?
我们可以尝试一下.
在两个不同的分支, 修改同一个文件, 分别提交.
执行 Git merge 分支名, 合并分支
提示:
Auto-merging 冲突的文件名
CONFLICT (content): Merge conflict in 冲突的文件名
Automatic merge failed; fix conflicts and then commit the result
意思是自动合并分支失败, 存在冲突.
现在 Git 需要我们解决冲突, 我们去解决一下冲突的问题.
打开冲突的文件名, 会发现冲突的代码块被 Git 修改过, 大概如下
- <<<<<<<HEAD
- 23
- =======
- 32
- >>>>>>> Dev
第一行代表冲突开始, HEAD 表示当前分支
Dev 表示要合并的分支
======= 将分支的修改进行隔离
现在我们就知道如何修改冲突了, 编辑此文件, 把冲突的内容修改为理想的状态,
执行 Git add . 告诉 Git, 我们已经解决冲突.
执行 Git commit, 就可以成功合入分支了.
总结
通过以上的命令, 可以完成日常的开发任务了. 但是 Git 作为常用的版本管理工具, 还有很多需要掌握的内容. 下一篇介绍 Git 进阶的一些命令.
来源: http://www.jianshu.com/p/90c73f5502b3