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
命令将本地的更改推送到远程仓库。
以上操作就是开发过程中的基本流程了,但????????????
解决方法:
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 标识。
解决方法:
1.第一步直接将修改过的代码都挂载 > git stash 2.切换到新分支 ,将挂载的代码 【pop】 出来,就可以重新应用修改过的代码了! > git checkout <分支名> > git stash pop stash@{0}
git stash
:git stash
命令用于临时保存你在工作目录中所做的更改,但是你暂时不想提交。它允许你在切换到其他分支或处理其他任务时,不必提交尚未完成的更改。
当你运行git stash
时,Git会保存你的本地修改,并将工作目录恢复到最后一次提交的状态。保存的更改被存储在一个新的stash中,你可以随后根据需要应用或丢弃它们。
以下是使用git stash
的基本工作流程:
在工作目录中对文件进行一些修改。
运行git stash
来保存你的更改。
Git会将工作目录恢复到最后一次提交的状态。
现在你可以切换分支或执行其他任务。
当你准备继续处理已保存的更改时,使用git stash apply
来重新应用最近的stash。
如果你有多个stash,可以通过提供stash引用来指定要应用的stash。
或者,你可以使用git stash pop
来应用最近的stash并从stash列表中删除它。
如果你不再需要某个stash,可以使用git stash drop
加上stash引用来删除它。
记得使用git stash list
来查看所有stash及其引用的列表。
请注意,git stash
是一个强大的工具,但是使用时要谨慎,并理解其影响。
master
分支解决方法:
1.将最近的一次提交从当前分支中移除,并将修改保留在工作区> git reset HEAD~2.如果你提交多次..那就将指定的提交及其之后的所有提交从当前分支中移除,并将修改保留在工作区> git reset <commit号>
git reset
git reset
是 Git 中的一个命令,用于撤销提交、移动分支指针或重置工作区到指定状态。它的应用场景和用法如下:
1. 撤销提交:
git reset HEAD~
:将最近的一次提交从当前分支中移除,并将修改保留在工作区。
git reset <commit>
:将指定的提交及其之后的所有提交从当前分支中移除,并将修改保留在工作区。
2. 移动分支指针:
git reset <commit>
:将当前分支的指针移动到指定的提交,丢弃该提交之后的所有提交。默认情况下,使用 --mixed
选项,修改会保留在工作区。
git reset --soft <commit>
:与上述相同,但修改也会保留在暂存区。
git reset --hard <commit>
:与上述相同,但修改会被完全丢弃,恢复到指定提交的状态。
3. 重置工作区:
git reset
:不带任何参数时,默认为 --mixed
,将工作区和暂存区回滚到上一次提交的状态。
git reset --soft
:将工作区保持不变,只重置暂存区到上一次提交的状态。
git reset --hard
:将工作区和暂存区都重置到上一次提交的状态,丢弃所有未提交的修改。
需要注意的是,git reset
是一个潜在危险的命令,因为它会改变 Git 的历史记录。在使用之前,请确保了解其影响,并谨慎操作。
如果觉得博客文章对您有帮助,异或土豪有钱任性,可以通过以下扫码向我捐助。也可以动动手指,帮我分享和传播。您的肯定,是我不懈努力的动力!感谢各位亲~