一、git 查看当前分支
你可以使用以下命令来查看当前所在的 Git 分支:
bash
git branch
输出中带有 *
符号的分支就是当前所在的分支。
如果只想显示当前分支的名称,可以使用:
bash
git branch --show-current
二、开发过程中,忘记切换分支,有什么办法当前开发的内容移动新的分支中?
如果你在开发过程中忘记切换分支,但已经进行了一些提交或有一些未提交的更改,不用担心,你可以将这些更改移动到新的分支。具体步骤如下:
方法 1: 已经提交代码的情况
如果你已经提交了代码,但忘记切换分支,可以使用以下步骤将提交移动到新分支:
-
创建并切换到新分支 :
你可以在当前分支的基础上创建一个新分支,并把提交移动到新分支上。
bashgit checkout -b 新分支名
-
回到原分支并重置到提交之前的状态 :
然后回到之前的分支并重置到提交前的状态,这样之前的分支就不会包含你忘记切换分支时的提交。
bashgit checkout 原分支名 git reset --hard 上一个合适的commit_id
(
commit_id
可以通过git log
找到)
方法 2: 未提交代码的情况
如果你还没有提交代码,但已经有了本地更改,可以使用以下步骤:
-
暂存更改 :
你可以将所有未提交的更改暂存,切换到新分支,再将更改应用到新分支。
bashgit stash
-
切换到新分支 :
创建并切换到新分支。
bashgit checkout -b 新分支名
-
恢复暂存的更改 :
将之前暂存的更改应用到新分支。
bashgit stash pop
之后,你就可以继续在新的分支上开发了。
方法 3: 结合提交和未提交的情况
如果你既有未提交的更改,又有提交了的内容,可以将未提交的部分 stash
暂存,然后根据方法 1将已提交的部分移动到新分支。
三、拉取远程master分支,合并到当前dev分支
要从远程的 master
分支拉取最新的更改并合并到你当前的 dev
分支,按以下步骤操作:
1. 确保你当前位于 dev
分支
首先,你需要确认自己在 dev
分支上。如果你不在 dev
分支,可以用以下命令切换:
bash
git checkout dev
2. 拉取远程 master
分支
然后,从远程仓库中拉取 master
分支的最新代码:
bash
git fetch origin master
3. 合并 master
分支到当前的 dev
分支
接下来,合并远程的 master
分支到当前的 dev
分支:
bash
git merge origin/master
4. 解决冲突(如果有)
如果合并过程中产生了冲突,Git 会提示你手动解决冲突。你可以打开冲突文件,手动修改冲突部分,然后添加修改并完成合并:
bash
git add <file_with_conflict>
git commit
5. 推送到远程 dev
分支(可选)
合并完成后,你可以将 dev
分支推送到远程仓库:
bash
git push origin dev
这样你就完成了从远程 master
分支拉取并合并到 dev
分支的操作。
四、git fetch origin master 后, git branch没有显示master
在执行 git fetch origin master
后,如果 git branch
没有显示 master
分支,可能是因为 master
分支还没有被创建为本地分支。git fetch
只拉取了远程的 master
分支更新,但不会在本地自动创建该分支。
你可以通过以下方式查看远程分支,并创建本地的 master
分支:
1. 查看远程分支
使用以下命令查看所有远程分支:
bash
git branch -r
你应该能看到类似 origin/master
的分支,表示远程仓库中存在 master
分支。
2. 创建本地 master
分支
如果你需要在本地创建并切换到 master
分支,可以执行:
bash
git checkout -b master origin/master
这会在本地创建一个名为 master
的分支,并将它设置为跟踪远程的 origin/master
。
3. 确认本地分支
执行以下命令来确认本地分支是否显示 master
:
bash
git branch
这样,你就可以看到本地的 master
分支了。
五、将本地已经创建的dev分支设置为跟踪远程dev分支
要将本地的 dev
分支设置为跟踪远程的 dev
分支,可以使用 git branch --set-upstream-to
命令:
设置本地 dev
分支跟踪远程 dev
分支
-
确保当前切换到
dev
分支:bashgit checkout dev
-
设置
dev
分支跟踪远程的origin/dev
分支:bashgit branch --set-upstream-to=origin/dev
验证跟踪关系
设置完成后,你可以通过以下命令验证本地分支的跟踪状态:
bash
git branch -vv
它会显示当前分支跟踪的远程分支。
六、拉取远程分支的更新
要拉取远程分支的更新并合并到当前分支,可以使用以下命令:
-
确保切换到要拉取更新的分支:
bashgit checkout dev
-
拉取远程分支的更新并合并:
bashgit pull origin dev
这会从远程仓库的 origin/dev
分支拉取更新并自动合并到你本地的 dev
分支。
如果你已经设置了分支的跟踪关系(如之前的 git branch --set-upstream-to=origin/dev
),你也可以简单地运行:
bash
git pull
这将拉取并合并当前分支跟踪的远程分支的最新更改。
七、将master分支更新内容合并到dev分支
要将 master
分支的更新内容合并到 dev
分支,你可以按照以下步骤操作:
-
切换到
dev
分支:bashgit checkout dev
-
拉取最新的
master
分支更新:bashgit fetch origin master
-
合并
master
分支到dev
分支:bashgit merge origin/master
这会将
origin/master
分支的最新更改合并到你当前的dev
分支中。 -
解决任何合并冲突(如果有的话):
-
Git 会提示你如果在合并过程中遇到冲突。你需要手动编辑冲突的文件,解决冲突,然后将解决后的文件标记为已解决。
-
使用以下命令添加已解决的文件:
bashgit add <file>
-
提交合并:
bashgit commit
-
-
推送合并后的
dev
分支到远程仓库(如果需要):bashgit push origin dev
这些步骤将确保你的 dev
分支包含了 master
分支的最新更改,并在需要时解决任何合并冲突。
八、git fetch origin master 将拉取的内容保存到哪个分支上了?
使用 git fetch origin master
命令会从远程仓库拉取 master
分支的最新更新,并将这些更新保存在本地的 origin/master
分支上。origin/master
是远程 master
分支的本地跟踪分支。
这不会自动合并到当前分支 。你需要执行额外的操作来将这些更新合并到你当前的工作分支。具体来说,git fetch
操作只会更新远程跟踪分支,而不会更改你的本地分支。
如果你想将 origin/master
的更改合并到你当前的分支(比如 dev
),你需要在执行 git fetch
后执行合并操作。以下是完整的流程:
-
获取远程分支更新:
bashgit fetch origin master
这将把远程
master
分支的最新内容下载到origin/master
。 -
切换到你的工作分支 (例如
dev
):bashgit checkout dev
-
合并
origin/master
到你的工作分支:bashgit merge origin/master
这样,你就将远程
master
分支的更新内容合并到了你的dev
分支上。