在Git操作中出现的意外及解决方案之一:原本要在新分支改动代码,却在废弃分支上一顿操作
技术  /  管理员 发布于 1年前   363
Git是一个分布式版本控制系统,用于跟踪和管理项目的代码变化。它最初由 Linus Torvalds 开发,用于管理 Linux 内核的代码。
Git特点:
分布式:
每个开发者都可以拥有完整的代码仓库副本,包括完整的历史记录。
这使得团队成员可以在没有网络连接的情况下独立工作,并且更容易处理分支和合并操作。
高效性能:
Git 设计简洁,执行速度快。它使用了一种称为” 快照” 的机制来存储文件的状态,而不是存储文件的差异。
这使得 Git 在处理大型项目和大量文件时表现出色。
强大的分支和合并功能:
Git 鼓励频繁地创建和合并分支,使得团队可以同时进行多个任务和实验性开发。
合并操作也相对简单,可以轻松地将不同分支的更改合并到一起。
完整的历史记录:
Git 记录了每次提交的详细信息,包括作者、日期、提交消息等。
这使得团队可以追溯代码的演变历史,并轻松地回滚到之前的版本。
支持多种协作方式:
Git 支持多种协作方式,包括通过远程仓库进行协作、通过邮件列表或社交平台进行代码审查等。
Git已成为广泛使用的版本控制系统,被许多开发者和团队用于管理各种类型的项目。
它提供了强大的工具和功能,使得代码的版本控制和协作变得更加高效和可靠。
下面呢是团队中协作开发时一些常见的Git入门操作:
初始化仓库:使用 git init 命令在当前目录初始化一个新的 Git 仓库。
克隆仓库:使用 git clone <repository> 命令克隆一个远程仓库到本地。
添加文件:使用 git add <file> 命令将文件添加到暂存区,准备提交。
提交更改:使用 git commit -m "commit message" 命令将暂存区的更改提交到本地仓库。
查看状态:使用 git status 命令查看当前仓库的状态,包括已修改、已暂存和未跟踪的文件。
查看历史:使用 git log 命令查看提交历史记录,包括提交者、日期和提交消息。
创建分支:使用 git branch <branch-name> 命令创建一个新的分支。
切换分支:使用 git checkout <branch-name> 命令切换到指定的分支。
合并分支:使用 git merge <branch-name> 命令将指定分支的更改合并到当前分支。
拉取更新:使用 git pull 命令从远程仓库拉取最新的更改。
推送更改:使用 git push 命令将本地的更改推送到远程仓库。
以上操作就是开发过程中的基本流程了
下面来说说意外及解决方案:本该出现在新分支的代码改动,却在废弃的分支上开发半天!
意外场景:
假设现在你的 a 分支功能开发完成,合并到 master 分支后,master 分支又有团队成员更新了很多代码。
其实这时你应该在本地更新(git pull)master 分支并且 git checkout 到一个新的分支(b)继续开发新功能。
但你并没有,继续留在了 a 分支继续开发,这可能导致代码差异过大而产生代码冲突!
解决方法:
1.先将a分支的代码提交到暂存区
> git add .
> git commit -m'fix'
2.提交之后会有一个提交记录,查看提交记录,并将刚才提交的这个commit号复制下来
> git log
3.更换到master切一个最新分支出来(b)
> git checkout master && git pull
> git checkout -b <新分支名>
> git cherry-pick <刚才复制的commit号>
操作之后你会发现a分支的更改内容被复制了一份到b分支,这样就可以继续开发了~
最后
关于git cherry-pick,git cherry-pick 是 Git 中的一个命令,用于选择性地将其他分支上的单个或多个提交应用到当前分支。它的应用场景和用法如下:
场景:
合并特定提交:当你只需要合并其他分支上的某个或某几个提交到当前分支时,可以使用 git cherry-pick。
修复bug:当你在其他分支上修复了一个 bug,并且希望将该修复应用到当前分支上时,可以使用 git cherry-pick。
用法:
单个提交的 cherry-pick:
git cherry-pick <commit>
这将会将指定的 <commit> 应用到当前分支上。
多个提交的 cherry-pick:
git cherry-pick <commit1> <commit2> ...
这将会按照指定的顺序将多个提交应用到当前分支上。
跨分支的 cherry-pick:
git cherry-pick <commit>..<commit>
这将会将两个提交之间(包括这两个提交)的所有提交应用到当前分支上。
需要注意的是,git cherry-pick 可能会引入冲突,因为它将其他分支上的提交应用到当前分支上。
如果发生冲突,你需要手动解决冲突并提交修改。
此外,git cherry-pick 会生成新的提交,这些提交与原始分支上的提交具有不同的 SHA 标识。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号