- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
到目前为止,我一直使用 git checkout <branch_name>; git reset --hard <hash>
将分支移回较早的提交。
然后我遇到了this question , 但答案和评论并没有详细解释它们之间的区别。
假设我有一个干净的工作树,它们之间有什么内部差异
git branch -f <branch_name> <hash>
和
git checkout <branch_name>
git reset --hard <hash>
这些差异(如果有的话)对高级用法有什么微妙的影响吗?
最佳答案
主要区别在于 git branch -f <branchname> <commitref>
移动 <branchname>
指向指定的提交而不触及 HEAD
、索引或工作副本,而git checkout <branchname> && git reset --hard <commitref>
修改所有三个。
如果你想在不移动的情况下快速重新排列分支 HEAD
或修改您当前的工作树,然后 git branch -f
是一个很好的方法。如果您有未提交的更改,它也可以工作,如果您使用 git checkout
,这并不总是可能的.
另一个区别与性能有关,但它只与非常的大型项目有关。
在这些情况下,使用 git checkout
修改您的工作树和 git reset --hard
可能是具有大量磁盘 I/O 的昂贵操作。另一方面,使用 git branch -f
只有一个 单个文件 将被写入磁盘,即包含 <commithash>
的文件。由 <branchname>
引用.
关于git - 干净的工作树下 `git branch -f <branch_name> <hash>` 和 `git checkout <branch_name>; git reset --hard <hash>` 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28149804/
用于推送到 bitbucket。 如果我这样做:git push origin origin/branch_name 我的提交不会被推送。 Total 0 (delta 0), reused 0 (d
当我们发出命令时 git branch -D git branch -d 每个命令有什么区别以及如何执行? 最佳答案 -d 版本首先检查分支是否有未 merge 到其上游副本中的提交。如果有,则删
到目前为止,我一直使用 git checkout ; git reset --hard 将分支移回较早的提交。 然后我遇到了this question , 但答案和评论并没有详细解释它们之间的区别。
我需要跳过某些包含“HotFix”这个词的分支。是否可以在 Jenkins 文件中包含如下内容? post { success { withCredentials(some_d
我们使用 Jenkins 管道和 Github Multibranch。 我在一个名为 feature/my1stfeature 的功能分支上工作。 . Jenkins 作业返回了正确的分支名称: p
我在 git 服务器中有 2 个分支,分别是 master 和 develop。我使用下面的代码将存储库克隆到我的机器上。 var options = new CloneOptions()
这是我做的: 我运行了 git checkout -b branch_name。 我在 branch_name 上做了一些提交。 我检查了 master 分支并进行了快速 merge 。 当我运行 g
当我想在已经有上游分支的分支上推送更改时,git push 就是我所需要的。但是当没有当前的上游分支时,我必须输入 git push -u $BRANCH_NAME。 我一直在创建新分支(对于我处理的
正如您在附加的屏幕截图中看到的那样,我希望我的管道从作为参数传入并保存在 BRANCH_NAME 中的同一分支中获取 Jenkinsfile。多变的: 最佳答案 我不得不取消选中“轻量级结帐”以使 J
我是一名优秀的程序员,十分优秀!