我git rebase最近开始使用,并不是100%肯定我做得对.为了这个问题,原点有两个分支,master并且next分支来自master.
自上次两者同步以来,master有2次提交和next6次:
$ git log --oneline origin/next..origin/master
59b5552 master commit #2
485a811 master commit #1
$ git log --oneline origin/master..origin/next
4ebf401 next commit #6
e9b6586 next commit #5
197ada0 next commit #4
4a2c3c6 next commit #3
040a055 next commit #2
84537bf next commit #1
Run Code Online (Sandbox Code Playgroud)
当我结账next并执行时git rebase -i origin/master,我得到以下内容:
$ git status
# On branch next
# Your branch and 'origin/next' have diverged,
# …Run Code Online (Sandbox Code Playgroud) 虽然reset并checkout具有不同用途的大部分时间,我看不出有什么区别在这两个之间.
可能有一个或任何人都--hard不愿意添加一个选项来做一些基本的checkout事情.
也许你会看到历史的方式有所不同?
在我的实验中,我无法找到任何功能上的区别
git reset --hard
Run Code Online (Sandbox Code Playgroud)
和
git reset --merge
Run Code Online (Sandbox Code Playgroud)
使用说明也没有给出任何提示
--hard reset HEAD, index and working tree
--merge reset HEAD, index and working tree
Run Code Online (Sandbox Code Playgroud)
我经常使用该--hard选项,所以了解它是如何工作的.选项--merge和--hard选项之间有什么区别?
干杯,奥利
也许一个例子在这里会有所帮助,让我们使用以下顺序:
cd git_repo
touch file_one
git add file_one
git commit -m "commit one" # sha1 of 123abc
echo "one" >> ./file_one
git commit -a -m "commit two" # sha1 of 234bcd
echo "two" >> ./file_one
git add . # populate index with a change
echo "three" >> ./file_one # …Run Code Online (Sandbox Code Playgroud) 我见过如下命令:
git reset e542 -- readme.txt
Run Code Online (Sandbox Code Playgroud)
我理解这个命令将提交e542中文件readme.txt的内容放入索引中.但--那里有什么选择呢?
git reset手册页将它列为前两个表单的可选项,但我找不到它的含义.
git reset [-q] [<commit>] [--] <paths>…
git reset (--patch | -p) [<commit>] [--] [<paths>…]
Run Code Online (Sandbox Code Playgroud) 我试图git reset --hard HEAD@{n}从git reflog我失去了一切,我目前不分阶段的文件:'(
未分阶段的文件是git add我做的最后一次,之后我尝试git reset了最后一次git commit.
我的所有文件都没了,我不能回到git add最后一次提交之前:'(
我大约每小时一次收到这样的消息:
错误:索引文件 sha1 签名错误致命:索引文件损坏
我已经在网上查看并知道如何解决它,但试图找出导致它的原因。
我在服务器上使用命令行工具,但在本地计算机上安装了目录(通过 sshfs)。但我不使用本地git,只使用远程服务器上的版本。
我唯一能想到的是 IntelliJ,但我停止使用 git 命令,认为它导致了冲突。
有谁知道问题可能是什么?
我正在使用KNP Pagination Bundle.我在捆绑源中自定义了twig文件.然后我发现了一种更好的方法,无需触摸软件包的文件.
不幸的是,现在我每次都这样做
bin/vendors install
Run Code Online (Sandbox Code Playgroud)
我收到以下错误: -
"KNP Paginator Bundle"进行了本地修改.请在再次运行此命令之前恢复或提交/推送.
我的.gitignore文件忽略了/供应商
我的deps文件也包含了捆绑包.
有没有办法卸载捆绑?这样我可以重新安装吗?或者解决问题的最佳方法是什么?
我是新来的git,并试图了解之间的差异git reset --soft和git reset --mixed.我知道后者重置索引,而前者没有,但我试图理解材料的不同之处:我何时使用一个与另一个?
我已经阅读了这篇Stack Overflow帖子,这似乎表明它mixed有助于在重新提交之前进行一些更改,同时还soft可以简单地重新提交.我正在使用SourceTree,关闭了暂存窗格,并努力想知道为什么会这样; 我不能为我的生活看到任何实际的真正差异.
我能看到的唯一区别是,我重置的新添加的文件显示为添加了软重置,但混合不是这样.但在任何一种情况下,我都可以成功地对新添加的文件进行更改,然后重新提交.当然,我对现有文件所做的任何新更改都会无缝地添加到我当前未提交的更改中,随时可以提交.
我是否必须使用源树的暂存窗格来查看任何实际差异,或者我只是缺少某些东西?要清楚,现在我已经设置了工具,我看到了未提交的更改,我只需一步即可完成.