我当时在一个名为 的功能分支中工作auth+menus
,下面是我需要帮助尝试恢复的事件和操作的顺序。我担心我会失去所有的工作,我希望我是错的。
git commit -m "code changes"
git commit -m "more changes"
git rebase -i HEAD~2
git checkout master
git pull upstream master
git checkout auth+menus
git rebase master
git rebase --continue
存在单一冲突
git rebase --skip
git add --all
git commit -m "some of these files should have already been committed"
git push origin auth+menu
git push origin auth+menu -f
因为我是个白痴...
我希望我没有完全失去前两次提交中的所有内容,我真的需要有人的帮助!有没有办法从中恢复并获得我原来的两次提交?
已从 Pycharm 删除分支。我有一个子选项“删除”,我不小心点击了它。分支已从原点删除。除了使用 git 之外,还有其他方法可以恢复分支吗?
我在这里查看了最佳答案无条件分支和无条件跳转(MIPS 中的指令)之间有什么区别?
它说分支允许条件,因此指令的格式与无条件的跳转不同。
然而,我见过像 jl 和 je 这样的跳转,它们之前使用 cmp 来设置条件标志,所以在我看来,这些跳转的行为与分支相同,这会减少分支与分支的差异。跳。那么在某些方面我是否可以考虑将 jl 和 je 等指令作为一种分支指令?除了格式之外,我看不出有什么区别,但如果我们考虑执行的话,它似乎并不重要。
我之所以特别问,是因为有人说我需要使用分支,但是,我在 godbolt 中看到的每个算法似乎主要由跳转组成,因此如果不自己编码就不可能获得分支,这不是什么我们已经在这个模块中完成了,所以我没有能力这样做。
假设我有 2 个分支 A(旧的)和 B(新的),最近分开了。在 A2 中我犯了一些错误(破坏了我想保留的一些文件的历史记录),我用 B2 修复了这些错误。
我想将分支B的工作目录带到提交A3的状态,但不合并/提交它。相反,我更喜欢只进行(暂存/未暂存)本地更改,以便在下一次提交后,B3 将与 A3 相同(但不以任何方式链接到 A2 或 A3):
A1 - [A2 - A3 - A4] (A will be deleted after the fix)
\
B2 - B3=(state of)A3 - A4
Run Code Online (Sandbox Code Playgroud)
在我的例子中这样做的原因是我搞乱了中间状态A2,我想用B2修复它,然后直接用A3继续。
我想到的最简单的方法是在另一个文件夹中签出 A3,删除 B 的内容并用 A3 的内容覆盖。
有没有Git命令可以直接实现这个功能?
参考:大约 9 年前的以下问题:
\n不分叉就拉取请求?
背景:
\n我正在关注 GitHub/Git,并且遇到了问题。\xc2\xa0 我认真地搜索过,但没有找到任何可以解决这个特定问题的东西 - 我发现的最接近的是上面提到的问题。
问题:
\n我“分叉”了一个存储库,打算做一些工作,对我自己的分叉进行更改,然后创建一个返回到原始项目的拉取请求,作为对其做出贡献的一种方式。
我终于想通了,并能够成功创建包含我提议的更改的拉取请求。
\n请注意,我还想做一些其他事情来为这个项目做出贡献,在创建拉取请求后,我继续工作并对本地副本进行了额外的提交,包括导入一些技术文档等。
\n显然,出于某种未知的原因,在我发出拉取请求后,拉取请求“拥有”我的原始存储库的分叉,此后我所做的任何事情都将成为该拉取请求的一部分- 无论它是否是相关与否,我是否将其推送到项目的分支,是否将其添加到 PR 中,或者其他什么。\xc2\xa0 它看起来就像魔法一样,并且只有在我删除/恢复我自己的存储库分支中的更改。
\n这是否意味着与该项目有关的所有工作都必须完全停止,直到 PR 被接受和/或拒绝?\xc2\xa0 如果是这样,其他人,尤其是一家使用单一代码库的公司能够成功完成工作吗?
\n当然,我确信这是可能的,人们一直这样做。
\n我所做的研究尚未披露任何似乎可以解决这个特定问题的内容,但是不同问题的其他答案似乎暗示了这样一个事实:一旦您分叉了一个存储库并创建了一个拉取请求,该拉取请求似乎确实“拥有” “您本地存储库的实例 - 缓解这种情况的唯一方法是:
\n要完成额外的工作,无论在项目的哪个阶段,您都必须:
\n对于你想做的任何额外工作,“冲洗并重复”,最终得到一个比圣诞树有更多树枝的叉子。
\n这引发了几个问题:
\n最后也是最重要的问题:
\n …我想用 C++ 编写高度优化的代码,并且有一个采用类型变量的模板化结构T
。该结构中有一个函数wow()
,当且仅当 的大小是 2 的幂时,可以优化为运行速度提高两倍。T
我可以使用更好的版本,而不在每次调用开始时wow()
进行分支(使用或其他操作) ?if
wow()
T
我理解(我希望我这样做)C++ 为我使用的每种类型创建了我的结构的副本(或者更好地说实例化) ,所以我可以告诉“结构生成器”wow()
根据 的大小使用哪个版本吗T
?
在 Git 上,我目前在分支上有一些暂存但未提交的更改master
。
我不想提交到 master 分支,而是想
development
;然后reset
/清除 上的分阶段更改master
;然后development
到master
远程,并保留development
分支;然后master
从远程刷新本地master
,而不更改本地现有的未提交文件请问我应该怎么做呢?我仍然是 git 的初学者,所以请分步骤解释一下,以便我可以遵循。
add
注1:我的分阶段更改包含 100 多个文件,因此手动将它们逐一手动挑选到新分支会很痛苦。如果可能的话,我试图避免这种容易出错的方式。
注2:有超过30个文件我没有暂存更改。即使从远程刷新后,我也想在本地保留这些更改master
。
我有一个feature
名为的分支featureA
,我是唯一正在并将接触该分支直到它合并到master
分支的开发人员。
我的 git 命令历史记录是:
但它似乎没有推送到远程存储库。
git status
输出:您的分支 和origin/featureA
已经出现分歧,并且分别有 1 个和 1 个不同的提交。(用于git pull
将远程分支合并到您的分支中)
git diff
表明:我的featureA
分支将被合并到master
分支,所以我不想破坏历史。
我经历了几个线程(建议git pul --rebase
,git reset --hard
等等),但仍然不清楚什么是最好的解决方案。
我不介意解决方案将处于哪种状态。如果需要,我不介意返回到之前的推送/提交并再次将新更改作为新提交推送,因为这只是单行代码更改。
我感谢您的帮助。
好吧,所以我试图制作一个非常简陋的战舰版本,以测试我一周的编程知识.基本上,所有程序都会让用户输入两个数字,然后使用这些数字来定位多维布尔数组上的一个槽.如果数组的插槽为真,则应该说是命中.如果是假的,应该说是小姐.然而,出于某种原因,无论我进入什么地方,我都会继续"命中!方向前进!" 幸运的是,程序显示"else"命令的错误.它说:"从未使用过以下的分支." 不幸的是,我不知道为什么分支从未使用过,我不知道如何解决它.我可以提供一些指导,帮助和/或建议吗?谢谢!
import java.util.Scanner;
class Battleship {
public static void main(String[]arguements) {
System.out.println(" Welcome to Battleship Solo Edition!");
System.out.println(" There are seven boats scattered across this 10 by 10 grid.");
System.out.println(" When you get a \'Hit!\', mark it on your accompanying paper.");
System.out.println(" Once you have completely shot down all seven boats (18 Hits), you win!");
System.out.println(" But play carefully! You only have 50 missiles.");
System.out.println();
boolean[][] field = new boolean [10][10];
//Ship one
field[8][2] = true;
field[8][3] = …
Run Code Online (Sandbox Code Playgroud) 当您在GitHub上访问项目时,它始终显示master
分支.GitHub如何决定显示哪个分支(不需要成为master
分支)?
嗨,我有两个并行的“dev”和“prod”分支,我想将另一个本地分支添加到名为“issue22”的本地开发分支(GitPro 将此称为主题分支 - 其他人称之为功能分支)。所以在终端我创建了我的功能/主题分支
git checkout -b issue22 dev
Run Code Online (Sandbox Code Playgroud)
我认为这会“创建一个名为 issue22 的分支”,并从 dev 分支中的相同源代码开始。我期待看到
prod
dev
dev/issue22
Run Code Online (Sandbox Code Playgroud)
但是当我发送命令 git branch -a
相反,我看到
prod
dev
issue22
remotes/origin/head -> origin/master
remotes/origin/dev
remotes/origin/prod
Run Code Online (Sandbox Code Playgroud)
我应该使用什么命令来创建一个新分支,以便“issue22”看起来像一个与“dev”分支并行运行的主题/功能分支,并且似乎也源于 dev 分支?
非常感谢
branch ×11
git ×8
github ×3
arrays ×1
assembly ×1
c++ ×1
commit ×1
conditional ×1
git-amend ×1
git-commit ×1
git-fork ×1
git-push ×1
git-rebase ×1
if-statement ×1
java ×1
merge ×1
pull-request ×1
pycharm ×1
struct ×1
templates ×1
x86 ×1