我们最近切换到 git 并尝试使用子模块来包含我们的公共库。
无论我们做什么,我们都无法让“git pull --rebase”在超级或子模块中工作。
我们得到:
james:libraries james$ git pull --rebase
Cannot pull with rebase: You have unstaged changes.
Please commit or stash them.
Run Code Online (Sandbox Code Playgroud)
即使我们根本没有任何本地更改并且有一个干净的目录,也会发生这种情况。有什么想法我们可能做错了什么吗?
谢谢!詹姆士
目前,当我在本地功能分支上工作以获取最新更改时,我需要执行以下操作:
git checkout master
git fetch
git rebase
git checkout my-feature
git rebase master
Run Code Online (Sandbox Code Playgroud)
是否有更简单的解决方案,只需将更改拉到主分支而不切换到它?
如果远程和本地存储库均发生更改,我在将本地存储库与 GitHub 上的远程存储库同步时遇到问题。因此,例如,如果我还没有开始研究某个功能,那么在开始之前我可以通过简单地运行来同步
git pull origin master
Run Code Online (Sandbox Code Playgroud)
这是一个简单的问题。然而,当我在本地开发一项功能时,假设我的同事已将新功能推送到远程,因此远程也发生了变化。我尝试在拉取之前完成提交和存储的同步。所以那些代码,
git add .
git commit -m "message"
git pull origin master
Run Code Online (Sandbox Code Playgroud)
或者
git stash save "message"
git pull origin master
git stash pop
Run Code Online (Sandbox Code Playgroud)
这两种方法最终都会覆盖我的本地更改,因此它不会将远程更改放在本地主分支的顶部,而是会覆盖我的本地文件,并且本地更改会消失。
我究竟做错了什么 ?我参考了许多有关 git 的文档,但我无法做到这一点。
谢谢,
我正在尝试使用 GitHub 桌面客户端从我的 github cmd 执行 git pull 命令。
出于某种原因,我的 git pull 不再有效,并且会出现以下错误:
D:\AndroidStudioProjects\Tangle>git pull
1 [main] sh (6932) C:\Users\dbale\AppData\Local\GitHub\PortableGit_c7e0cbde92ba565cb218a521411d0e854079a28c\usr\bin\sh.exe: *** fatal error - cygheap base mismatch detected - 0xC77400/0xDD7400.
This problem is probably due to using incompatible versions of the cygwin DLL.
Search for cygwin1.dll using the Windows Start->Find/Search facility
and delete all but the most recent version. The most recent version *should*
reside in x:\cygwin\bin, where 'x' is the drive on which you have
installed the cygwin distribution. …Run Code Online (Sandbox Code Playgroud) 我的 github 帐户中有一个 fork,我将这个 fork 克隆到了我的本地计算机。现在我做了一些提交,并将其推送到origin. 然后,我readme.md直接在 GitHub 中更新了fork 中的文件,而不是在本地 clone 中。我做了一个名为Updated readme.md file.
现在我想将它与我的本地计算机同步。所以我跑了git pull。这给了我错误:
Cannot pull with rebase: You have unstaged changes.
Please commit or stash them.
Run Code Online (Sandbox Code Playgroud)
最后一次提交后,我修改了本地计算机上的 2 个文件。但我不再想要这些改变。所以,我想删除对这两个文件所做的任何更改,并与origin.
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: …Run Code Online (Sandbox Code Playgroud) 在 git 中,可以使用-字符星来处理远程名称。
例如,我们可以添加一个以 开头的远程,只需使用git 命令中的-选项(命令选项和远程名称之间分开)即可更新它。----
但它不起作用:
git pull -- "-myremotename" "master"
Run Code Online (Sandbox Code Playgroud)
而且,我收到此错误消息:
error: unknown switch `y'
usage: git fetch [<options>] [<repository> [<refspec>...]]
Run Code Online (Sandbox Code Playgroud)
我认为该--选项在 中不起作用git pull,因为它是后跟 ,pull的组合,并且在执行这两个命令时不使用。git fetchgit merge--
有办法解决吗?
我的企业有一个 Git 存储库。要进行更改,我必须在分叉存储库中进行更改,然后发出拉取请求。
我主要使用 RStudio,因此我启用了它与 Git 的集成。我可以对我的分叉存储库进行更改,然后推送、拉取、同步等。问题是我仍然需要登录 GitHub 并为我的分叉存储库发出拉取请求的额外步骤。RStudio 有办法做到这一点吗?
使用libgit2sharp我想从一个特定的 git 远程分支拉(fetch + merge)最新到我当前签出的本地分支,而不必传递任何其他参数,比如用户凭据等。基本上我试图复制git pull origin my-remote-branch
我想从 C# 自动化某些 Git 操作。我可以通过调用git.exe(如果我知道路径)简单地做我想做的事,比如git.exe --git-dir=my-repo-directory pull origin my-remote-branch. 请注意,这里我必须提供的唯一外部参数是my-repo-directory和my-remote-branch。Git 让一切都正确,比如姓名、密码、电子邮件、当前工作分支(即使它没有远程连接),而 git pull 就可以正常工作。我不必手动传递任何这些参数。我假设 Git 从 repo 的当前 Git 设置中获取它们(来自 %HOME% 文件夹?)。
有没有办法在 LibGit2Sharp 中模拟它?
using (var repo = new Repository("my-repo-directory"))
{
PullOptions pullOptions = new PullOptions()
{
MergeOptions = new MergeOptions()
{
FastForwardStrategy = FastForwardStrategy.Default
}
};
MergeResult mergeResult = Commands.Pull(
repo,
new …Run Code Online (Sandbox Code Playgroud) 如何用所有远程分支覆盖所有本地分支?
这是我当地的分支机构:
client-side-js-framework
client-side-js-framework-2
client-side-js-framework-3
handlebars
master
Run Code Online (Sandbox Code Playgroud)
还有我的远程分支:
client-side-js-framework
handlebars
master
no-network-connection
Run Code Online (Sandbox Code Playgroud)
我希望我的本地分支能够镜像我的远程分支,因为我的远程分支更加最新。换句话说,我当地的分支机构应该是:
client-side-js-framework
handlebars
master
no-network-connection
Run Code Online (Sandbox Code Playgroud)
这可以通过一个(或两个)命令来完成,而不是基本上删除我的本地存储库并重新克隆它吗?
如果我的当前目录是 git 项目的子目录并且我调用git pull它总是显示相对于项目根目录的路径。有没有办法查看相对于当前目录的已更改文件路径?
前任。
<root>/default $ git pull
...
Updating 03e5eb12..95987ffb
Fast-forward
../client/styles/components/manageEscrow.styles.ts | 11 +++++
./lib/index.ts | 8 ++--
INSTEAD OF
client/styles/components/manageEscrow.styles.ts | 11 +++++
default/lib/index.ts | 8 ++--
Run Code Online (Sandbox Code Playgroud) git ×10
git-pull ×10
github ×3
branch ×1
c# ×1
git-checkout ×1
git-fetch ×1
libgit2sharp ×1
macos ×1
pull ×1
pull-request ×1
r ×1
rstudio ×1