git分支合并,版本回退,建立关联

本文详细介绍了如何在Git中创建、关联、合并分支,以及如何处理代码提交错误,包括撤销更改、回滚提交和删除特定提交。还提供了从现有分支创建新分支的方法,以及更新远程分支和本地分支的策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                                     git 远程分支和本地分支

一:建立本地分支和远程分支关联:

有时候我们需要把自己修改的代码放在新的分支上,对原来的分支保持不变。你可以按照以下的步骤试一试。

建立本地分支:git branch dev(dev为分支名称)

建立远程分支:git push origin dev(在远程仓库建立与本地分支同名的分支。) 

执行git pull之后,如果本地和远程没有进行关联,会提示拉取失败。此时需要把本地分支和远程分支关联起来。

执行git branch --set-upstream-to=origin/dev会建立本地分支和远程分支的关联。

二:合并分支到另一分支上:

以dev分支合并到master分支为例(注意合并分支的时候两个远程分支应该存在)

切换分支:git checkout master 首先需要切换到要合并的分支上,比如想合并到master分支上:

执行merge:git merge dev 把dev分支和master分支上的内容合并。

三:提交代码到远程分支上:

查看修改的状态:git status

添加修改到本地暂存区:git add .  .是添加所有,你也可以指定添加哪个文件,添加的时候写多个文件名。

提交缓存区的内容:git commit -m "提交代码" -m"" 中可以写提交的记录信息,以便日后查看提交记录

push到远程分支:git push (push到关联的分支上,注意已关联分支git push才会直接推送到远程库)

本地分支和远程分支关联: 

git branch --set-upstream-to=origin/remotename  

git branch --set-upstream-to origin/remotename

两者均可行,建立远程关联的时候确保在要建立关联的本地分支上

push到远程分支git push origin dev 这条命令表示,将本地的dev分支推送到origin主机的dev分支。如果dev不存在,则会被新建

四:把不想要的代码,commit到本地仓库中了,但是还没有做push操作:

1.文件被修改了,但未执行git add操作(working tree内撤销):

git checkout fileName 撤销对某个文件的提交

git checkout . 撤销对所有变动的提交

2.同时对多个文件执行了git add操作,但本次只想提交其中一部分文件

git add .  添加了多个文件的修改操作

git status 查看提交的状态

git reset HEAD <filename> # 取消暂存

3.文件执行了git add操作,但想撤销对其的修改(index内回滚)

git reset HEAD fileName # 取消暂存

git checkout fileName # 撤销修改

4.已在本地进行了多次git commit操作,现在想撤销到其中某次Commit

git reset [--hard|soft|mixed|merge|keep] [commit|HEAD] #撤销到其中某次Commit


五:线上更新的代码出现问题了,需要还原这次提交的代码

1.撤销指定文件到指定版本

git log <filename> # 查看指定文件的历史版本

git checkout <commitID> <filename> # 回滚到指定commitID

2.删除最后一次远程提交

方式一:使用revert

git revert HEAD

git push origin master

方式二:使用reset

git reset --hard HEAD^              #退到上一次提交

git reset --hard commit_id          #退到/进到 指定commit_id

git push origin master -f             

二者区别:

revert是放弃指定提交的修改,但是会生成一次新的提交,需要填写提交注释,以前的历史记录都在;

reset是指将HEAD指针指到指定提交,历史记录中不会出现放弃的提交记录。

3.回滚某次提交

git log # 找到要回滚的commitID​​​​​​

git revert commitID # 回滚操作

六:删除某次提交

git log --oneline -n5          # 查看所有的commit

git rebase -i "commit id"^ # 需要注意最后的^号,意思是commit id的前一次提交

pick 5b3ba7a test2 (5b3ba7a 是commit id ,test2 是提交的备注)

                                         #在编辑框中删除相关commit,然后保存退出(如果遇到冲突需要先解决冲突)!

git push origin master -f   # 最后强制推送到远程分支上

git push origin HEAD --force      #推送到远程分支

七:从master(其它分支)拉一个新的分支

git checkout master                      # 切换到要拉的分支

git pull                                           # 拉取远程分支最新代码

git checkout -b newBranchName  # 拉出新分支,此时新分支的本地代码是最新的master的代码

git push origin newBranchName(远程分支名称)  # 本地新建分支的代码提交到远程分支上

git branch --set-upstream-to=origin/newBranchName  #本地分支与远程分支建立关联

附:

git branch -a                                 #查看所有分支     

 git branch -r                                #查看远程分支

git remote update origin --prune  #更新远程分支:这里注意,如果你的remote branch不是在origin下,你需要把

                                                    origin换成你的名字。默认的话主机是origin 除非闲的没事去修改配置文件的主机名

git branch --unset-upstream        #断开本地分支和远程分支的连接:

git log                                          #查看提交日志

git reset --hard HEAD^               #回退到上个版本

git reset --hard commit_id          #退到/进到 指定commit_id

git reflog                                     # 查看每次的操作

git push origin HEAD --force      #推送到远程分支

git branch -d branch_name        #删除本地分支

git push origin --delete branch_name     #删除远程分支

git branch -vv                               #查看本地分支于远程分支的连接状态  

git reset --hard origin/master        #本地强制更新成远程分支 放弃本地的修改

git fetch remotebranchName       #更新远程分支的所有变动

git stash  git stash pop                #将本地工作区的内容暂存,恢复暂存的服务。

git---从已有分支拉出新分支

Git更新远程分支列表

Git撤销&回滚操作

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值