Git(2)—特性
部分参见于 廖雪峰官方网站
- 分支管理
git checkout -b dev //建立新的分支dev HEAD指针移至dev分支,之后就是在dev进行操作 git commit -m "D" //进行一次新的提交 git checkout master //将HEAD指针移至master分支 git merge dev //将master分支向dev分支合并 git branch -d dev //删除dev分支
git checkout
命令加上-b
参数表示创建并切换,相当于以下两条命令:
$ git branch dev //创建分支 $ git checkout dev //移动指针 Switched to branch 'dev'
$ git branch //可以查看当前项目所含的所有分支 * dev master
* HEAD指针当前指向的分支
当合并之后产生冲突时,需要先解决冲突,修改文件之后再次提交,再次合并即可。
用Fast forward
模式,但这种模式下,删除分支后,会丢掉分支信息
强制禁用Fast forward
模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息
$ git merge --no-ff -m "merge with no-ff" dev
- Bug分支
git stash 可以把当前工作现场“储藏”起来,等恢复现场后继续工作
//创建另一个分支修复代码,合并到master分支后,切换回之前工作的分支
$ git stash list //查看stash内容
stash@{0}: WIP on dev: feb58f7 be_merged_finally
- git stash pop //恢复的同时把stash内容也删了
git stash apply stash@{0} //恢复后,stash内容并不删除,你需要用
git stash drop
来删除;
- 多人协作
当自己提交时比他人晚了一步,则需要先从远程拉取最新的,之后进行合并再上传
如果没有指定自己本地dev
分支与远程origin/dev
分支的链接 则会报错,需要设置,然后再拉取
错误提示提示 no tracking information
git branch --set-upstream-to=origin/dev dev
工作流程
-
首先,可以试图用
git push origin <branch-name>
推送自己的修改; -
如果推送失败,则因为远程分支比你的本地更新,需要先用
git pull
试图合并; -
如果合并有冲突,则解决冲突,并在本地提交;
-
没有冲突或者解决掉冲突后,再用
git push origin <branch-name>
推送就能成功!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!