问题标签 [git-track]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - 如何检查我所在的分支是否基于远程跟踪分支的提交?
我想弄清楚我是否可以拉动。
如果我的分支基于远程分支而不是他有远程跟踪分支,那么我可以拉。
如果我的分支基于commit,它没有远程跟踪分支,因此 pull 会失败。
我设法找到的是使用命令时git branch -vv
:
- 如果有远程跟踪,它将显示在方括号中。例子:
* origin/before-yo b0b97cf [remotes/origin/before-yo] Move to subfolder
- 如果分支基于提交,则不会有任何远程 ref 指示。例子:
* 2fbe2ab473fe8f7aea2a36642aea1dc7d36add51 2fbe2ab Advance counter
有没有更好的方法来了解是否有一个远程跟踪分支连接到我当前的工作分支?
另外,git branch -vv
在某些情况下可能不起作用?
谢谢。
git - 为什么本地“remotes/origin/master”与实际的远程分支不同步?
我想知道,如果你这样做:
并且上面的命令成功了——在什么情况下分支"remotes/origin/master"
会与实际的远程分支不同步(在 Github 上)?
根据我的观察,有时会"remotes/origin/master"
看到本地更改不在 Github 上的实际远程分支上。这很奇怪,我无法解释。
我确实在本地创建了这样的分支:
然后当我更新时foo
,似乎有时会remotes/origin/master
反映对 所做的更改foo
,这很奇怪。
git - Git忽略文件更改但只有一次?
Git是否有某种“忽略一次”功能?
我希望 git 这次只忽略对文件的更改,这可能吗?
我有一个带有变量的跟踪文件,我想更改:
太“假”,
- 我不希望文件在暂存文件时出现,所以我可以做一个“全部暂存”。
- 我也不想将文件添加到 .gitignore,因为该文件包含其他更改的变量 & 应该被跟踪。
- 我不想推送 Debug: 'false',因为那只会让其他人遇到相反的问题,即想要 Debug: 'true' 而无需跟踪。
这可能吗?
我知道:
但如果我理解正确,它将继续不跟踪更改,直到我使用 --no-assume-unchanged 标志开始跟踪。
我可以先使用 --assume-unchanged 然后进行更改然后使用 --no-assume-unchanged 绕过跟踪吗?
git - Git 可以跟踪祖先分支以及它自己的分支吗?
抱歉,如果这是一个菜鸟问题,但我一直在寻找一个小时以上,但无法得到明确的答案。
我想做的是:
- 签出远程分支
git checkout origin/feature
- 根据该分支创建本地分支
git checkout -b feature_my_tweak
- 所以现在我有一个 call 的本地副本
feature
,feature_my_tweak
我可以玩 - 做一些改变,
commit -m "added my tweak"
所以现在我的本地人feature_my_tweak
已经偏离了feature
- 现在做一个
git push --set-upstream origin feature_my_tweak
将我的本地分支推送到远程服务器 - 现在同事将更改推送到
feature
远程服务器上
在这一点上,我希望能够git pull
让 git 看到有更改feature
并将其拉入(获取/合并)到我的本地feature_my_tweak
分支中。有没有办法自动做到这一点?或者我是否必须手动git merge feature
将所有更改从该分支获取到我的本地feature_my_tweaks
分支?我想我认为有一种方法可以让一个分支跟踪另一个分支。
另一部分是我仍然希望能够对本地进行更改,feature_my_tweaks
并且仍然能够git push
并且只能将其推送到远程origin/feature_my_tweak
分支而不污染origin/feature
分支。
有没有办法做到这一切?据我所知,如果任何分支_A 正在跟踪远程分支_B,任何推送都将转到分支_B,这是我不想要的。
我希望这是有道理的。
git - 从跟踪远程分支更新本地分支而不丢失本地分支中的更改
我从 github 克隆了一个远程分支,并从中A
签出了一个本地分支feature/test
例如 -
现在我开始工作feature/test
并对其进行了一些更改并提交但未推送。现在远程分支A
已经更新了某人的最新提交,所以我想更新我的本地分支feature/test
并从远程获取这些最新更改A
。我怎样才能在不丢失本地更改的情况下做到这一点。
注意 - 我从分支的本地更改feature/test
已提交但未推送。
git - Git:如何在不暂存文件进行删除的情况下取消跟踪文件
我有一些我想在本地更改的配置文件,但不会冒意外提交这些更改的风险。它们也不能添加到 gitignore 中,因为需要对整个项目进行跟踪。当我修改这些文件以满足我的环境需要时,我的git status
外观如下:
然后我运行:
git status
看起来像这样:
可以预见的是,跑步git reset --HEAD config1.cfg config2.cfg
会将他们送回集结区。但是,即使该分期是为了删除,某些东西可能未被跟踪但仍然在同一时间上演,这有点没有意义。而且 - 我没有删除文件,但如果我现在提交,那么它们将被删除。
我意识到这可能是涂抹和清洁过滤器的更好用例,但是是否有可能达到以前跟踪的文件未被跟踪并且就好像从未被跟踪过的状态?如果没有,是否有充分的理由不可能?
编辑以澄清现在我对情况的了解更好一点:我正在尝试创建的场景是在我工作时在我的本地未跟踪文件的场景,而不会影响它们在远程的跟踪状态。
git - 如何仅显示来自 `git status` 的分支过期信息?
通常git status
显示:
- 当前分支名称(或分离的 HEAD 状态)
- 上游分支(如果有)是否领先、落后或发散
- 已更改暂存以进行提交
- 未为提交暂存的更改
- 未跟踪的文件
如何只查看 1 和 2 而没有文件信息?git status
的选项通常会影响文件的显示,并且尝试使其更短通常会完全删除分支状态摘要。
我希望看到这样的事情:
没有别的。
是否有一些 git 命令专门显示此信息?
git - 使用 push.default current 推送时如何自动设置上游?
我曾经使用加上一些 git 管道命令¹的指示自动删除我的分支git fetch -p
,并匹配一个[gone]
模式然后删除匹配的分支。
我使用的一些存储库强制压缩拉取请求,因此永远不会在本地进行合并提交,并且我无法链接新提交的内容和本地分支的内容。
前段时间我切换到push.default current
了,功能确实比push.default upstream
or好simple
。
几天后,我注意到我所有的分支都没有被删除;这来自于推送时的事实,上游是“猜测的”但从未设置过。
如果我手动设置分支的上游(通过--set-upstream-to),那么我可以看到我的修剪脚本再次工作;但这违背了使用 push.default 设置为current的目的。
有没有办法在不实际输入的情况下将上游设置自动化到推送分支?
我实际上测试了插入一个pre-push hook,但是如果分支不存在,那么set-upstream就不能工作;并且不存在后推挂钩。
实际上,我的最终目标是删除合并压扁的分支,但我认为没有更好的候选者可以检查遥控器是否已消失以验证;因为我没有历史重写的保证
1:git for-each-ref --format '%(upstream:track) %(refname)' refs/heads | awk ' $1 == "[gone]" { sub("refs/heads/", "", $2) ; print $2 }'