Git—代码管理、提交及冲突解决流程的思考
1 代码管理
Git不多说,大家都知道这是一个分布式版本控制系统,对开发者而言,可以敏捷高效的进行代码管理及开发,也非常适合多人协作。话不多说,下面就来点干货。
1.1 创建新仓库
我们在工作区(就是自己的电脑里)创建一个新的文件夹,这个文件夹用来存放远端同步过来的代码库。进入到这个新建的文件夹,执行创建新的仓库的命令:
$ git init
补充:
差点忘记介绍一下git维护的“树”(3棵):
- 工作区: 也就是我们的电脑里的实际文件所在位置,即为工作目录;
- 暂存区:Index,暂存的意思就是临时保存我们的改动,类似于缓存;
- 版本库:HEAD,这是git的版本库,指向我们最后一次提交的结果。
1.2 克隆仓库(拷贝项目)
$ git clone <repository_address>
举例:gerrit仓库:
git clone "ssh://usera@gerrit.cmss.com:123456xx/Project1/Project1.1"
我们也可以使用git clone <repository_address> <local_dir>
命令将仓库拷贝到指定的local_dir
目录中。
2 代码提交流程
2.1 远程拉取最新仓库内容
$ git pull
2.2 查看分支
查看本地分支
$ git branch
查看远端分支
$ git branch -a
2.3 切换分支
$ git checkout -b local_branch_name origin/remote_branch_name
其中local_branch_name
是本地分支的取名;remote_branch_name
是远端分支的名称;
2.4 开发代码
在这个分支上进行代码的开发或者修改;
2.5 代码新增
逐个添加
$ git add file_name
其中file_name
为需要提交的代码路径名;
一次性添加
我们也可以一次性全部提交
$ git add -A
2.6 代码提交
基于模板提交
$ git commit
会跳转到之前编辑好的git提交模板,进行模板信息编写并保存;
基于命令行的提交信息
$ git commit -m "code infomation"
其中"code infomation
替换为本次提交代码的信息;
2.7 代码拉取合并
一般在代码推送前,我们最好进行一次拉取操作
$ git pull --rebase
这个操作主要是避免,在我们修改代码的同时,其他开发者也在修改代码并提交合并到了同一个分支,此时远端仓库和本地工作目录的基线不一致。如果有冲突,我们就手动去解决这些冲突。
2.8 代码推送
$ git push origin HEAD:refs/for/remote_branch_name" 其中,
remote_branch_name`是远端分支的名称;
3 其他常用命令
在使用git时,我们也会使用一些辅助性的命令进行检查或者进行代码管理。
3.1 查看状态
$ git status
3.2 查看日志
$ git log
或者
$ git reflog
4 代码冲突
一般都是在提交代码前没有进行git pull
拉取最新代码引起的,当然,当自己的代码开发完毕后,再次拉取最新代码也有可能和本地代码也冲突。这个时候需要我们去解决这些冲突。
方案一:我们可以通过上述的git pull --rebase
去解决冲突,然后重新git add
和git commit
,最后git push
。
方案二:我们可以通过git log
查看commit-id,找到最近一次提交,然后在通过git reset --soft commit-id
跳转到倒数第二次提交的位置,进行代码更改。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)