小编Nic*_*kin的帖子

将(移动)子目录分离到单独的Git存储库中

我有一个Git存储库,其中包含许多子目录.现在我发现其中一个子目录与另一个子目录无关,应该分离到一个单独的存储库.

如何在将文件的历史记录保存在子目录中的同时执行此操作?

我想我可以制作一个克隆并删除每个克隆的不需要的部分,但我想这会给我一个完整的树,当检查旧版本等.这可能是可以接受的,但我宁愿能够假装两个存储库没有共享历史记录.

为了说清楚,我有以下结构:

XYZ/
    .git/
    XY1/
    ABC/
    XY2/
Run Code Online (Sandbox Code Playgroud)

但我想这样做:

XYZ/
    .git/
    XY1/
    XY2/
ABC/
    .git/
    ABC/
Run Code Online (Sandbox Code Playgroud)

git git-filter-branch git-subtree

1712
推荐指数
15
解决办法
25万
查看次数

你什么时候使用git rebase而不是git merge?

什么时候建议使用git rebasevs. git merge

成功改造后我还需要合并吗?

git version-control git-merge git-rebase

1461
推荐指数
15
解决办法
36万
查看次数

没有指定分支的"git push"的默认行为

我使用以下命令推送到我的远程分支:

git push origin sandbox
Run Code Online (Sandbox Code Playgroud)

如果我说

git push origin
Run Code Online (Sandbox Code Playgroud)

这会推动我的其他分支的变化,还是只更新我当前的分支?我有三个分支:master,productionsandbox.

git push文件是不是这个很清楚,所以我想澄清这一点为好.

哪些分支和遥控器可以git push完全更新以下命令?

git push 
git push origin
Run Code Online (Sandbox Code Playgroud)

origin 上面是一个遥控器.

据我所知,git push [remote] [branch]只会将该分支推送到远程.

git branch git-push git-branch

1339
推荐指数
10
解决办法
62万
查看次数

从已从磁盘中删除的Git存储库中删除多个文件

我有一个Git仓库,我已经删除了使用rm(不是 git rm)的四个文件,我的Git状态如下所示:

#    deleted:    file1.txt
#    deleted:    file2.txt
#    deleted:    file3.txt
#    deleted:    file4.txt
Run Code Online (Sandbox Code Playgroud)

如何从Git中删除这些文件,而无需手动浏览并添加如下所示的每个文件:

git rm file1 file2 file3 file4
Run Code Online (Sandbox Code Playgroud)

理想情况下,我正在寻找能够以同样方式工作的东西git add .,如果可能的话.

git git-add git-commit git-rm

1294
推荐指数
21
解决办法
47万
查看次数

使用Git push部署项目

是否可以使用git push?部署网站?我有一个预感,它与使用git hooksgit reset --hard在服务器端执行有关,但我将如何实现这一目标呢?

git deployment webserver githooks

410
推荐指数
10
解决办法
12万
查看次数

如何在不删除磁盘的情况下git rm文件?

该命令将删除系统中的文件.我的意思是它只从Git-repository中删除文件.

如何在不删除系统中的文件的情况下从Git存储库中删除该文件?

git git-rm

349
推荐指数
2
解决办法
13万
查看次数

从存储库中删除文件但保留在本地

我有一个文件夹,我想在我的远程存储库中删除.我想删除它,但将文件夹保存在我的电脑中

git gitignore git-rm

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

Git:仅列出"未跟踪"文件(也是自定义命令)

有没有办法使用命令git ls-files,只显示未跟踪的文件?

我问的原因是因为我使用以下命令来处理所有已删除的文件:

git ls-files -d | xargs git rm
Run Code Online (Sandbox Code Playgroud)

对于未跟踪的文件,我想要类似的东西:

git some-command --some-options | xargs git add
Run Code Online (Sandbox Code Playgroud)

我能够找到-o选项git ls-files,但这不是我想要的,因为它也显示了被忽略的文件.我还能够提出以下长而丑陋的命令:

git status --porcelain | grep '^??' | cut -c4- | xargs git add
Run Code Online (Sandbox Code Playgroud)

似乎我必须在这里使用更好的命令.如果没有,我如何创建自定义git命令?

git git-status git-stage git-ls-files git-rm

322
推荐指数
8
解决办法
13万
查看次数

Git添加修改,删除和未跟踪的所有文件?

有没有办法添加所有文件,无论你对它们做什么,是否删除,未跟踪等?喜欢提交.我每次提交时都不想拥有git addgit rm所有文件,特别是当我在处理大型产品时.

git git-add git-rm

245
推荐指数
8
解决办法
26万
查看次数

如何删除Git存储库中的多个已删除文件

我删除了一些文件和git状态显示如下.

我承诺并推动.

GitHub仍然在存储库中显示已删除的文件.如何删除GitHub存储库中的文件?

# On branch master
# Changes not staged for commit:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   deleted:    modules/welcome/language/english/kaimonokago_lang.php
#   deleted:    modules/welcome/language/french/kaimonokago_lang.php
#   deleted:    modules/welcome/language/german/kaimonokago_lang.php
#   deleted:    modules/welcome/language/norwegian/kaimonokago_lang.php
Run Code Online (Sandbox Code Playgroud)

如果我使用git rm它,它给出以下.

usage: git rm [options] [--] <file>...

-n, --dry-run         dry run
-q, --quiet           do not list removed files
--cached              only remove from the index
-f, --force           override the …
Run Code Online (Sandbox Code Playgroud)

git git-rm

233
推荐指数
8
解决办法
14万
查看次数