git 使用

本文介绍了如何撤销未完成的gitcommit,使用gitreset--soft恢复修改;讲解了如何将本地修改推送到远程临时分支,以及如何将远程分支的修改合并到本地基于主分支的分支,并处理可能的冲突。此外,还提到了Git子模块的概念,即一个仓库如何包含并管理另一个仓库。

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

1. git commit --amend如何撤销

如果未执行git commit -m "fix title",直接执行git commit --amend,就会导致未生成新的修改记录,而是在本地最新修改记录的基础上添加内容,这会导致原有的提交被再次修改,

此时,可执行如下命令,回到未执行前的状态

git reset HEAD^ --soft

具体作用包括:

  1. 移动 HEAD 指针: 将当前分支的 HEAD 指针指向上一个提交,即删除最后一次提交记录。

  2. 保留修改: 不会更改你的工作目录或暂存区的文件内容,这意味着你之前所做的修改不会丢失,而是保留在工作目录和暂存区中。

  3. 重新提交: 这使得你可以重新调整之前的提交或者在上一个提交的基础上继续修改,然后进行新的提交。

总的来说,git reset HEAD^ --soft 允许你“取消”最后一次提交,但保留之前的修改内容以供进一步编辑和重新提交

2. 如何将本地修改提交新的远程临时分支

  • git checkout -b your_branch:这个命令会在本地创建一个名为your_branch的新分支,并切换到该分支。

  • git add . 

  • git commit -m "fix title"

  • git push -u origin your_branch:这个命令会将新建的本地分支推送到远程仓库,并在远程仓库上创建名为your_branch的新分支。 -u 参数将本地分支与远程分支关联起来,使得以后的推送可以简化为 git push 而不需要指定远程分支。

3. 如何将远程临时分支的修改合入本地基于主分支拉取的临时分支

git 将本地分支与远程master主分支合并(详细过程,冲突解决)_git merge 远程master-优快云博客

答案来自于ChatGPT

要将远程临时分支的修改合入本地基于主分支拉取的临时分支,你可以按照以下步骤进行操作:

3.1 拉取远程临时分支的修改: 确保你的本地仓库包含了远程临时分支的最新修改。你可以使用以下命令将远程分支的修改拉取到本地:

git fetch origin remote_branch:local_temp_branch
这将远程分支remote_branch的修改拉取到一个本地临时分支 local_temp_branch 中。

3.2 基于主分支创建临时分支: 确保你的本地主分支是最新的,然后基于主分支创建一个临时分支来进行合并操作:

git checkout main_branch
git pull origin main_branch
git checkout -b temp_branch


3.3 合并远程临时分支的修改: 切换到刚刚创建的临时分支,然后执行合并操作将远程临时分支的修改合入该分支:

git merge local_temp_branch


3.4 解决冲突(如果有): 如果合并过程中出现了冲突,需要手动解决冲突并提交修改。

3.5 测试修改并提交: 在解决冲突后,确保修改后的代码能够正常运行,并进行必要的测试。然后,将修改提交到本地仓库:


git add .
git commit -m "Merge remote changes from remote_branch"


3.6 推送修改到远程仓库: 最后,将合并后的修改推送到远程仓库中的临时分支:


git push origin temp_branch
通过以上步骤,你可以将远程临时分支的修改成功合入本地基于主分支拉取的临时分支,并将修改推送到远程仓库中。

4. Git 工具 - 子模块(submodule):一个仓库包含另一个仓库

Git 工具 - 子模块(submodule):一个仓库包含另一个仓库 - 开源 & Github - 清泛网移动版 - 专注C/C++及内核技术

5. git中如何查看某个commit属于哪个分支

5.1 使用 git log 和 --oneline 选项

可以使用 git log 命令结合 --oneline--decorate 选项来查看 commit 的历史,并确定它属于哪个分支:

git log --oneline --decorate --graph --all

这个命令会显示所有分支的历史,你可以通过查找 commit 的哈希值来确定它属于哪些分支。

使用 git name-rev

git name-rev 命令可以显示 commit 的名称(即它所在的分支),例如:

git name-rev --name-only abc123

这将输出 commit 所在的分支名称。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值