编辑:我已经检查过这个在Git中的FETCH_HEAD是什么意思? 在提出问题之前.
抱歉原始的不准确的问题.
我的问题是fetch是如何工作的?fetch会丢弃所有当前日志吗?
这是我的情况:我的队友和我正在使用只有一个分支的相同存储库.因此我们必须在推送之前进行提取.
我们通常这样做:
git status
git add .
git commit -m message1
git fetch origin
git reset head
git status
git add .
git commit -m message
git push
Run Code Online (Sandbox Code Playgroud)
但重置后,似乎我之前的提交(with message1)已经消失.
这是正常的还是有什么不对?
我如何访问我的本地历史记录?
它们已经同步但我的当地历史已经消失.
老员工,算了吧:我最近一直在学习Git CLI.
有人告诉我键入" git fetch head"以跟踪远程分支.
但我想知道这是做什么的?此命令是否覆盖我的本地日志?
" git fetch"和" git fetch head" 之间有什么区别?
背景:
我们已经在我们的系统中生成了需要在最终状态下提交的文件(例如,我们不能依赖源(未生成的)文件并在运行中生成生成的文件).由于我们需要生成的文件,因此无法忽略这些文件.
问题:
这些文件Your local changes to the following files would be overwritten by merge在checkout和pull命令中从git 触发了很多错误.
当我拉或结账时,我从不关心我的文件是什么,我只关心新文件.(显然我非常关心生成文件的源文件.我很高兴源文件上的合并警告,它保存在不同的目录中.)
但是,当我提交时,我希望我的版本"赢"并生成我生成的文件.
可能的方法:
现在我只是git checkout -- generated-files/在拉或结账之前运行以重置我生成的文件并跳过任何合并错误.它有效,但我经常忘记这样做,如果可能的话我想自动化它.
我看了一个预检验和预拉钩,但git不提供它们:(
问题:
git checkout -- generated-files/拉或结账前运行?我有一些基本的git知识,但我不知道如何实现这一目标.
我试图克隆(?)github WordPress启动主题下划线.我们的想法是创建一个基本框架,基于对存储库(一些修改).然后以该框架为基础创建其他主题.
所以看起来应该是这样的:
复制github将存储库强调到本地
从下划线创建一个本地存储库my_framework,始终修改这些文件的某些部分(例如名称)并添加一些其他文件
创建新的本地资源库my_theme1,my_theme2基于my_framework
目标是在更改和修改框架和主题的同时,使用任何下划线更新来更新所有内容.一旦来自github的内容被拉出,它应该保留(或通知)任何更新,但我不需要我在本地做出任何改变回到路径中.
我不确定要遵循哪条路径,并感谢任何帮助或指针.
我收到这条消息:
Cannot pull with rebase: You have unstaged changes.
Please commit or stash them.
Run Code Online (Sandbox Code Playgroud)
是的,我有未提交的更改.我搜索了一种在新代码之上修改我未提交的更改的方法.
我发现了这个:https://github.com/aanand/git-up
我想知道这是否仍然是可行的方法,或者是否还有更多现代化的方法.
我使用git版本1.8.1
当在编辑器中打开文件(比如Sublime或Atom),并且在编辑器外编辑文件时,编辑器总是拒绝刷新它显示的文件.这种情况很少发生,因为很可能只会使用单个工具在特定时间范围内编辑文件.当文件是只读时,这显然不是问题.例如,在读取系统错误日志时,文件将在系统运行时更新,并且可能有新的错误日志,但不会编辑日志文件,因此不会导致冲突.
但是,它会在更新文件时导致问题git pull.
当一个人提取回购的最新更新时,他可能会在编辑器中打开一个文件,在更新中进行了一些更改.如果编辑器无法刷新文件,则文件将与旧内容一起保存,并且任何新更改都将丢失.
有时候,使用sourcetree反转hunk是很烦人的,但是当有许多文件被更新时,这种覆盖可能会被推到git服务器中而不被注意 - 直到发生错误.目前我们使用git log --follow -p -- file命令来定位并恢复错误,但是如果没有及时发现覆盖,则无法手动复制行.有没有办法首先防止这种覆盖?
我想我理解git pull,这就是我如何解释它,我称之为"简单术语":
git pull是将 "远程"分支合并为"本地"分支.现在我想得到同样的解释git pull --rebase.我不想使用诸如"head","index","fetch","upstream"这样的术语,因为这些术语/概念只会让像我这样的初学者感到困惑.我知道我需要学习这些"高级"概念,我是通过阅读教程来实现的,但就目前而言,作为学习过程的一部分,我想要理解git pull --rebase.
添加
我想在某些时候我听到了以下解释.通过git pull --rebase.当我们合并时,我们不是以"对称"的方式进行,如上所述.相反,我们首先"忘记""本地"存储库中的更改,并仅应用"远程"存储库中的更改.通过这样做,我们基本上"复制"远程存储库.之后,我们将"本地"存储库中的更改应用于顶部.但是,我仍然不清楚它究竟意味着什么.特别是,"顶部"意味着什么.
任何人都可以帮助避免 git 合并问题。我正在尝试将我的分支合并到另一个分支,比如另一个分支。由于 another_branch 是基础分支。所以要添加在 my_branch 中完成的工作,首先我要合并 my_branch。为此,我正在执行这些步骤。
git checkout another_branch
git pull anothr_branch
一旦我更新了 another_branch 的最新更改,我就会切换到 my_branch
git checkout my_branch
git merge anothr_branch
在做这一切之前,是的,我提交并暂存我的更改以将其保存在本地。所以毫无疑问会丢失我的任何更改。
但我没有看到 another_branch 的所有变化。所以我称之为覆盖。
可能是什么原因?
我当前的分支中有一些未提交的更改。
我必须从另一个开发分支重新建立基础,但我想先隐藏我的更改。
如果我执行 git stash 然后我 git rebased dev 分支,我会丢失存储吗?
我们的项目有一个开发分支。我基于开发分支创建了一个错误修复分支,并更改了一个文件a.java。我知道当我修复 bug 时,另一个人更改了 a.java 并合并到开发分支。
现在我已经修复了错误,我想将我的代码合并到开发分支,但在这样做之前,我想将更改(因为其他人也更改了 a.java)拉到我的本地分支以测试它是否有效, 我对吗?我该怎么做?
首先,我通过“ git pull ”拉取了所有代码,并且我位于错误修复分支中。然后运行' git mergedevelop ',它输出为空。然后我' git merge origin/develop '。它输出以下错误。
Updating 46f689b..3011608
error: Your local changes to the following files would be overwritten by merge:
projectA/a.java
Please commit your changes or stash them before you merge.
Aborting
Run Code Online (Sandbox Code Playgroud)
如何将开发分支合并到我的工作目录?谢谢。
我正在使用 Gitkraken,有时我会看到下面的消息。
WIP on master: Auto stash before merge of "master" and "origin/master"
Run Code Online (Sandbox Code Playgroud)
它到底意味着什么?它通常发生在我尝试 PULL 后。谢谢!
git ×10
git-rebase ×2
github ×2
atom-editor ×1
editor ×1
git-fetch ×1
git-merge ×1
git-pull ×1
githooks ×1
gitkraken ×1
gulp ×1
merge ×1
rebase ×1
sublimetext2 ×1
sublimetext3 ×1
wordpress ×1