博客更新: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进阶的一些命令。