Git checkout commit,做一些事情,然后回到 master

标签 git branch git-checkout

我有一个构建系统,它获取一个 git 存储库,返回到一个特定的提交,然后将这些文件上传到某个地方。然后回到 master。

我不确定我是否使用了正确的 Git 命令,因为每当我执行 git checkout SHA 时 Git 都会给我这条消息:

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

git checkout -b new_branch_name

我唯一想做的就是将我的工作目录重置为特定的提交,上传这些文件,然后返回到 HEAD/master。当我转到特定的提交 SHA(将 XML 转换为 JSON 或其他东西)时,我可能会对文件进行一些更改,但我只想在返回 master 时放弃所有这些更改。现在这是我的代码

git checkout SHA

# do a bunch of conversion and uploading

git checkout master

这是做我想做的事情的首选方式吗?我是否始终能够在不发生任何文件冲突的情况下从原点进行 pull (我不想保留我在 checkout 之间所做的任何事情)?

我问是因为我有时看到“你的主人和起源/主人不同”,虽然我不确定这是由此引起的。

提前致谢。

最佳答案

这样做是完全可以的。当 HEAD 与分支名称不对应时,它将显示为分离的 HEAD。这没有错。

关于Git checkout commit,做一些事情,然后回到 master,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12043491/

相关文章:

git - "Cannot update paths and switch to branch at the same time"

git - 为什么我不能从 Git 的工作目录中丢弃文件?

Git (MacOS) 区分大小写的覆盖问题

Github)3路 merge ,补丁

git - 将修补程序 merge 到 dev 和 master 中会导致分歧

function - gnuplot 忽略多分支拟合中的第二个分支

git - 切换分支时git是否更改子模块引用

git - 我可以在接受 pull 请求之前实时预览 pull 请求的结果吗?

Pro Git 中的 Git 分支示例

Git 从存储库中提取文件夹的内容