相关疑难解决方法(0)

git fetch到底做了什么?

编辑:我已经检查过这个在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" 之间有什么区别?

git git-fetch

12
推荐指数
1
解决办法
5398
查看次数

如何在git中处理跟踪生成的文件?

背景:

我们已经在我们的系统中生成了需要在最终状态下提交的文件(例如,我们不能依赖源(未生成的)文件并在运行中生成生成的文件).由于我们需要生成的文件,因此无法忽略这些文件.

问题:

这些文件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中生成的文件?

git githooks gulp

10
推荐指数
1
解决办法
795
查看次数

基于github存储库的本地存储库创建本地git存储库并保持更新

我有一些基本的git知识,但我不知道如何实现这一目标.

我试图克隆(?)github WordPress启动主题下划线.我们的想法是创建一个基本框架,基于对存储库(一些修改).然后以该框架为基础创建其他主题.

所以看起来应该是这样的:

  1. 复制github将存储库强调到本地

  2. 从下划线创建一个本地存储库my_framework,始终修改这些文件的某些部分(例如名称)并添加一些其他文件

  3. 创建新的本地资源库my_theme1,my_theme2基于my_framework

目标是在更改和修改框架和主题的同时,使用任何下划线更新更新所有内容.一旦来自github的内容被拉出,它应该保留(或通知)任何更新,但我不需要我在本地做出任何改变回到路径中.

我不确定要遵循哪条路径,并感谢任何帮助或指针.

git wordpress github

10
推荐指数
2
解决办法
690
查看次数

不能用rebase拉

我收到这条消息:

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

git git-rebase

9
推荐指数
3
解决办法
1万
查看次数

由于编辑器没有自动更新,有没有办法防止git pull后意外覆盖?

当在编辑器中打开文件(比如Sublime或Atom),并且在编辑器外编辑文件时,编辑器总是拒绝刷新它显示的文件.这种情况很少发生,因为很可能只会使用单个工具在特定时间范围内编辑文件.当文件是只读时,这显然不是问题.例如,在读取系统错误日志时,文件将在系统运行时更新,并且可能有新的错误日志,但不会编辑日志文件,因此不会导致冲突.

但是,它会在更新文件时导致问题git pull.

当一个人提取回购的最新更新时,他可能会在编辑器中打开一个文件,在更新中进行了一些更改.如果编辑器无法刷新文件,则文件将与旧内容一起保存,并且任何新更改都将丢失.

有时候,使用sourcetree反转hunk是很烦人的,但是当有许多文件被更新时,这种覆盖可能会被推到git服务器中而不被注意 - 直到发生错误.目前我们使用git log --follow -p -- file命令来定位并恢复错误,但是如果没有及时发现覆盖,则无法手动复制行.有没有办法首先防止这种覆盖?

git editor sublimetext2 sublimetext3 atom-editor

9
推荐指数
1
解决办法
201
查看次数

如何用简单的术语解释"git pull --rebase"?

我想我理解git pull,这就是我如何解释它,我称之为"简单术语":

  1. 一般来说,git pull "远程"分支合并为"本地"分支.
  2. 更详细地,git使用"远程"分支的内容来"更新"/"修改""本地"分支的内容.
  3. 更详细地说,如果文件已在"本地"分支中修改但未在"远程"分支中修改,则在合并之后,文件的内容将与"本地"分支中的内容相同.反之亦然.如果在"远程"分支上修改了文件但未在"本地"分支中修改,则将从"远程"分支获取内容.
  4. 如果在两个分支("本地"和"远程")中修改了文件,那么git将尝试从两个分支进行修改.如果更改发生在文件的不同位置,则两个更改都将应用并在合并后出现在文件的内容中.
  5. 如果更改发生在同一个地方,我们就会知道"合并冲突",为简单起见,我不会触及这种情况.
  6. 作为合并的结果,我们修改了"本地"存储库,因此我们需要"提交".

现在我想得到同样的解释git pull --rebase.我不想使用诸如"head","index","fetch","upstream"这样的术语,因为这些术语/概念只会让像我这样的初学者感到困惑.我知道我需要学习这些"高级"概念,我是通过阅读教程来实现的,但就目前而言,作为学习过程的一部分,我想要理解git pull --rebase.

添加

我想在某些时候我听到了以下解释.通过git pull --rebase.当我们合并时,我们不是以"对称"的方式进行,如上所述.相反,我们首先"忘记""本地"存储库中的更改,并仅应用"远程"存储库中的更改.通过这样做,我们基本上"复制"远程存储库.之后,我们将"本地"存储库中的更改应用于顶部.但是,我仍然不清楚它究竟意味着什么.特别是,"顶部"意味着什么.

git git-pull git-rebase

7
推荐指数
1
解决办法
505
查看次数

git merge 覆盖更改

任何人都可以帮助避免 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 git-merge

5
推荐指数
2
解决办法
1万
查看次数

在 Git 中存储然后变基

我当前的分支中有一些未提交的更改。

我必须从另一个开发分支重新建立基础,但我想先隐藏我的更改。

如果我执行 git stash 然后我 git rebased dev 分支,我会丢失存储吗?

git rebase

5
推荐指数
1
解决办法
5197
查看次数

如何将远程分支合并到本地分支?

我们的项目有一个开发分支。我基于开发分支创建了一个错误修复分支,并更改了一个文件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)

如何将开发分支合并到我的工作目录?谢谢。

git merge github

5
推荐指数
1
解决办法
1万
查看次数

master 上的 WIP:在合并“master”和“origin/master”之前自动存储

我正在使用 Gitkraken,有时我会看到下面的消息。

WIP on master: Auto stash before merge of "master" and "origin/master"
Run Code Online (Sandbox Code Playgroud)

它到底意味着什么?它通常发生在我尝试 PULL 后。谢谢!

git gitkraken

5
推荐指数
1
解决办法
6307
查看次数