相关疑难解决方法(0)

以下未跟踪的工作树文件将被合并覆盖,但我不在乎

在我的分支上,我在.gitignore中有一些文件

在不同的分支上,这些文件不是.

我想将不同的分支合并到我的,我不在乎这些文件是否不再被忽略.

不幸的是我明白了:

合并将覆盖以下未跟踪的工作树文件

如何修改我的pull命令来覆盖这些文件,而不必自己查找,移动或删除这些文件?

git merge git-merge git-fetch

254
推荐指数
16
解决办法
42万
查看次数

如何将分支的内容复制到新的本地分支?

我曾经在一个本地分支机构工作,并将更改推送到远程.我想恢复该分支上的更改并对其执行其他操作,但我不想完全失去工作.我在考虑在本地创建一个新分支并在那里复制旧分支,然后我可以恢复更改并继续处理旧分支.还有更好的方法吗?或者我该怎么做?

git branch

245
推荐指数
3
解决办法
25万
查看次数

git checkout --track origin/branch和git checkout -b branch origin/branch之间的区别

有人知道切换和跟踪远程分支这两个命令之间的区别吗?

git checkout -b branch origin/branch
git checkout --track origin/branch
Run Code Online (Sandbox Code Playgroud)

我认为两者都跟踪远程分支,所以我可以将我的更改推送到原点上的分支,对吧?

有什么实际差异吗?

谢谢!

git branch git-checkout git-branch

196
推荐指数
3
解决办法
13万
查看次数

"无法同时更新路径并切换到分支"

我有时会使用该checkout -b选项创建一个新分支,同时检查它并在一个命令中设置跟踪.

在新环境中,我收到此错误:

$ git checkout -b test --track origin/master
fatal: Cannot update paths and switch to branch 'test' at the same time.
Did you intend to checkout 'origin/master' which can not be resolved as commit?
Run Code Online (Sandbox Code Playgroud)

为什么Git不喜欢它?这曾经使用相同的回购.

git git-checkout

181
推荐指数
6
解决办法
13万
查看次数

git fetch不会获取所有分支

我已经克隆了一个存储库,之后其他人创建了一个新的分支,我想开始研究它.我阅读了手册,看起来很简单.奇怪的是它不起作用,我发现的所有帖子都表明我做的是正确的.因此,我会让自己受到抨击,因为这一定有明显的错误:

似乎是正确的行动

git fetch
git branch -a
* master
  remotes/origin/HEAD --> origin/master
  remotes/origin/master
git checkout -b dev-gml origin/dev-gml
Run Code Online (Sandbox Code Playgroud)

此时出现问题,由于某些原因git fetch我无法看到dev-gml远程分支.为什么不?如果我新近克隆存储库,它就在那里,所以远程分支肯定存在:

$ mkdir ../gitest
$ cd ../gitest
$ git clone https://github.com/example/proj.git
Cloning into proj...
remote: Counting objects: 1155, done.
remote: Compressing objects: 100% (383/383), done.
remote: Total 1155 (delta 741), reused 1155 (delta 741)
Receiving objects: 100% (1155/1155), 477.22 KiB | 877 KiB/s, done.
Resolving deltas: 100% (741/741), done.
$ cd projdir
$ git branch -a …
Run Code Online (Sandbox Code Playgroud)

git branch fetch git-fetch

162
推荐指数
8
解决办法
10万
查看次数

跟踪所有远程git分支作为本地分支

将单个远程分支作为本地分支进行跟踪非常简单.

$ git checkout --track -b ${branch_name} origin/${branch_name}
Run Code Online (Sandbox Code Playgroud)

将所有本地分支推送到远程,根据需要创建新的远程分支也很容易.

$ git push --all origin
Run Code Online (Sandbox Code Playgroud)

我想反过来.如果我在一个源上有X个远程分支:

$ git branch -r 
branch1
branch2
branch3
.
.
.
Run Code Online (Sandbox Code Playgroud)

我是否可以为所有远程分支创建本地跟踪分支,而无需手动创建每个分支?说出类似的话:

$ git checkout --track -b --all origin
Run Code Online (Sandbox Code Playgroud)

我用google搜索和RTM,但到目前为止已经上传了.

git branch

160
推荐指数
8
解决办法
7万
查看次数

如何创建一个新的(和空!)"根"分支?

我想在这个git存储库中定义一个新的"root"分支."root"分支是指完全独立于存储库1中所有其他分支的分支.

不幸的是,甚至在Arepo的提交树的基础上提交(让我们称之为)包含很多文件(这是一个在已经相当成熟的项目上初始化的存储库).

这意味着即使我A作为新分支提供<start-point>,这个新分支也不会从"干净的平板"开始,而是包含所有提交的文件A.

有没有什么方法可以在这个存储库中创建一个完全裸的分支,<start-point>尽可能接近A


1 BTW,这等于创建一个新的回购.由于很多原因,单独的回购将不太方便.


编辑:好的,这是我做的,基于vcsjones的回答:

# save rev of the current earliest commit
OLDBASE=$(git rev-list --max-parents=0 HEAD)

# create a new orphan branch and switch to it
git checkout --orphan newbranch
# make sure it's empty
git rm -rf .

# create a new empty commit in the new branch, and
# save its rev in NEWBASE
git commit …
Run Code Online (Sandbox Code Playgroud)

git

122
推荐指数
4
解决办法
3万
查看次数

什么是“git restore”命令,“git restore”和“git reset”有什么区别?

当我想取消暂存文件时,我所有的 Git 教程都显示如下内容:

$ git add *
$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    renamed:    README.md -> README
    modified:   CONTRIBUTING.md
Run Code Online (Sandbox Code Playgroud)

此提示告诉我们git reset用于取消暂存文件。

但是,在我的终端中,我看到:

git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
    renamed:    cat.js -> catcat.js
    renamed:    tolendo.gogo -> tolendo.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)
    readme (copy).md
    tolendo (copy).txt
    zing (copy).html
Run Code Online (Sandbox Code Playgroud)

我的终端告诉我使用,git …

git restore git-reset unstage

107
推荐指数
4
解决办法
8万
查看次数

git:switch分支没有分离头

我在github上有一个存储库,它有一个主分支(master)和一个分支用于一些实验工作.我做了一些提交并推到实验分支,一切都很好.

现在,在另一台机器上,我尝试克隆我的存储库(git clone repository),然后切换到实验分支(git checkout branchname),但每次我这样做时,我的头都会分离,我无法推动我的更改.我究竟做错了什么?我觉得我在某个地方缺少一个基本的git概念,但是阅读随机的git手册页并没有给我任何线索.

我是git的新手,所以我很抱歉,如果我是一个白痴,但我在文档中找不到任何可以帮助我重新认识的东西.

编辑

跟踪分支的概念是我所缺少的.现在我认识到这个概念一切都很清楚.就个人而言,我发现git branch --track语法比直观更直观git checkout -b branch-name origin/branch-name.

谢谢您的帮助!

git version-control

96
推荐指数
4
解决办法
4万
查看次数

为什么"我们的"和"他们的"的含义与git-svn相反

我使用git-svn并且我注意到当我必须在执行a之后修复合并冲突时,例如和的选项git svn rebase的含义是相反的.也就是说,如果存在冲突并且我想保留来自SVN服务器的版本并丢弃我在本地进行的更改,我必须使用,当我期望它.--ours--theirsgit checkoutourstheirs

这是为什么?

例:

mkdir test
cd test
svnadmin create svnrepo
svn co file://$PWD/svnrepo svnwc
cd svnwc
echo foo > test.txt
svn add test.txt
svn ci -m 'svn commit 1'
cd ..
git svn clone file://$PWD/svnrepo gitwc
cd svnwc
echo bar > test.txt 
svn ci -m 'svn commit 2'
cd ..
cd gitwc
echo baz > test.txt 
git commit -a -m 'git commit 1'
git svn rebase

git checkout --ours test.txt …
Run Code Online (Sandbox Code Playgroud)

git git-svn

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