相关疑难解决方法(0)

"git add -A"和"git add"之间的区别.

该命令git add [--all|-A]似乎与git add ..相同.它是否正确?如果没有,它们有何不同?

git git-add

2788
推荐指数
11
解决办法
160万
查看次数

检查已删除文件的历史记录

如果我在Subversion中删除文件,我该如何查看它的历史和内容?如果我尝试执行svn catsvn log在不存在的文件上,它会抱怨该文件不存在.

另外,如果我想恢复文件,我应该svn add回来吗?

(我特意询问了Subversion,但我也想听听Bazaar,Mercurial和Git如何处理这个案例.)

svn version-control bazaar

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

在应用程序中接收"尝试导入错误:"

我在尝试运行我的反应应用程序时收到以下错误:

combineReducers

以下是我导出combineReducers的方法:

import { combineReducers } from 'redux';
import userReducers from './userReducers';
import articleReducers from './articleReducers';

export default combineReducers({
    userReducers,
    articleReducers
});
Run Code Online (Sandbox Code Playgroud)

这是我如何导入它App.js:

combineReducers

我如何导出combineReducers有什么不对?

reactjs redux

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

git无法检测到重命名

一个分支(refactoringBranch)有一个完整的目录重组.文件被混乱地移动,但内容被保留.

我试图合并: git merge --no-ff -Xrename-threshold=15 -Xpatience -Xignore-space-change refactoringBranch

git status显示大约一半的文件重命名识别.但是项目中的10000个文件中有一半未被识别为移动.

一个例子是:

# On branch master
# Changes to be committed:

#   deleted:    404.php
#   new file:   public_html/404.php
    ...
#   deleted:    AnotherFile.php
#   new file:   public_html/AnotherFile.php
    ...
#   renamed:    contracts/css/view.css -> public_html/contracts/css/view.css
Run Code Online (Sandbox Code Playgroud)

建议?


史前

重构是在git之外进行的.我做了以下事情:

  1. 创造了refactoringBranch原产地master.
  2. 删除了里面更改的结构refactoringBranch,这意味着我在其他目录中进行了更改,只是将它们复制粘贴到我的git存储库中.
  3. 添加并提交了所有内容然后尝试合并.

这是我的工作流程:

git checkout -b refactoringBranch
cp -R other/place/* ./
git add . -A
git commit -a -m "blabla"
git checkout master
git merge --no-ff …
Run Code Online (Sandbox Code Playgroud)

git

39
推荐指数
7
解决办法
2万
查看次数

在解决方案资源管理器中重命名、移动文件时,如何在 Visual Studio 中执行 git move,而不是 git delete 和 git add?

语境

我经常在 Visual Studio 2022 中移动、重命名文件。重命名是标准的重构实践。但是,当我在解决方案资源管理器中重命名文件时,不会git mv执行任何操作,而是执行 git delete 和 git add 。

这会导致丢失该特定文件/类的历史记录,这在许多情况下都是巨大的损失。

问题

我可以离开 IDE 并使用命令行来执行移动操作

git mv myoldfile.cs mynewfile.cs
Run Code Online (Sandbox Code Playgroud)

这将完美地保留历史记录,但离开 IDE 会成为生产力杀手,尤其是在谈论重构和重命名多个类/文件时。

在解决方案资源管理器中重命名、移动文件时,如何git mv在 Visual Studio 中执行,而不是 git delete 和 git add?

git visual-studio

21
推荐指数
1
解决办法
6087
查看次数

Eclipse的Refactor> Move可以与Git集成吗?

使用IDE for Java的一个好处就是自动重构.我遇到的问题是,在使用Refactor> Move将类移动到另一个包(在文件系统中移动文件本身)之后,git status显示旧位置的文件已被删除,而新文件中的文件已被删除位置已添加.

我发现的解决方法很笨重:

mv src/com/example/newpackage/Foo.java src/com/example/oldpackage/Foo.java
git mv src/com/example/oldpackage/Foo.java src/com/example/newpackage/Foo.java
Run Code Online (Sandbox Code Playgroud)

有没有办法(当使用Eclipse的Git插件时)让重构做一个git mv而不是一个天真的文件系统移动?

java eclipse git

17
推荐指数
1
解决办法
4036
查看次数

让Git关注重命名和编辑的文件

大约在Git中重命名文件的问题 过,但我不能制定出一个解决方案,我的具体问题.

我已经移动并编辑了多个文件(我没有使用git mv- 不幸的是现在已经太晚了).现在我想要它,所以当我的同事从我的存储库中取出时,对这些相同的文件进行了自己的编辑(没有移动它们),它成功地将我的更改与他在文件的新位置中合并.为了成功合并,Git显然需要知道这些文件是相同的.

Git是否足够聪明地独自完成这项工作?似乎很难相信.如果是这样,我怎么能确定Git会拾取特定的文件移动 - 即使内容已经改变了?

git version-control file-rename git-merge

15
推荐指数
2
解决办法
9174
查看次数

是否有内置的方法来重命名整个脚手架?

我正在使用Rails 3.2,并开始使用脚手架并从中构建,但已经意识到我需要重命名整个脚手架(模型,视图,控制器db:migrate等).是否有内置方法来执行此操作,还是应该手动执行此操作?

ruby-on-rails

11
推荐指数
1
解决办法
4392
查看次数

Git重命名文件.历史记录在cmd-line上可用,但在github界面中没有?

在Git中重命名文件和文件夹时,有很多 关于如何保存历史记录的优秀 帖子.


这适用于git命令行界面:

#if you don't modify oldname.cpp or newname.cpp, git will understand your rename

git mv old.cpp new.cpp
git commit -am "renamed old.cpp -> new.cpp"

git log new.cpp #only shows the new commit
git log --follow new.cpp #shows ALL the history of old.cpp and new.cpp
Run Code Online (Sandbox Code Playgroud)

太棒了,所以这个--follow命令允许我们new.cpp在重命名之后获得所有的历史记录.这在git的命令行界面中效果很好.


但是,在github web界面中,历史old.cpp并未显示出来new.cpp.这是一个问题,因为我的许多团队成员都将他们的github帐户视为简历的一部分.如果他们的提交在重命名文件后没有出现在github中,那么他们就会失去恢复点.在主要文件名/目录重构之后,贡献者最终可能没有在repo上进行单个可见提交.

git log --follow在重命名文件后,如何在github Web界面(例如)中显示完整的文件历史记录?

或者我不会重命名任何东西,除非我愿意让偶然的github用户永远不会看到旧的提交?

git version-control github

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

如何在IntelliJ中重构时将更改日志保留在git文件中?

当我在IntelliJ中重构类时,git会丢失文件旧日志的轨迹?有没有办法重构文件,以便保存日志,或者我错过了什么?

我在SourceTree中检查文件的日志,但我想它对于一切都是一样的.

git logging refactoring intellij-idea atlassian-sourcetree

6
推荐指数
1
解决办法
2427
查看次数

在git中重命名文件

我是团队中的新程序员.在我的第一天,我将这个重命名的文件放在一个舞台上,准备由git提交:

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

        modified:   .gitignore
        new file:   reports/SQLS.rar
        renamed:    account/enter_rules.php -> enter_rules.old.php

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:    account/enter_rules.old.php

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        account/enter_rules.php
Run Code Online (Sandbox Code Playgroud)

对于前2行,我没有问题.我知道发生了什么事.但是对于最后一个改名为:,我不确定应该做些什么.该系统运作良好.

在工作目录中我有:

account/enter_rules.php
Run Code Online (Sandbox Code Playgroud)

我找不到enter_rules.old.php文件.

看起来其他程序员已经从文件中创建了一个副本,命名为.old,实际上是一些测试和新代码,而不是分阶段进行更改而忘记提交.比他手动删除了old.php

应对这种情况的最佳方法是什么?我想在开始处理它并进行自己的更改之前先把git状态清楚.

我找到了这篇文章,但我不确定我是否应该或可以在我的情况下做出承诺.在git中处理文件重命名


在阅读了所有建议后,这对我有很大帮助,这就是我所做的: …

git file-rename

6
推荐指数
1
解决办法
406
查看次数

git status / git diff -C未检测到索引中的文件副本

git status[1] 的文档隐含了它应该能够(具有C状态)检测重命名和副本,或者无论git diff -C应该采取什么措施,但都不能正常工作:

mkdir test
cd test/
git init
echo 'Hello World!' > hello.txt
echo 'Goodbye World!' > goodbye.txt
git add -A
git commit -m "Initial commit"

cp hello.txt copied.txt
mv goodbye.txt moved.txt
git add -A

$ git status --short
A  copied.txt  <------------ NO COPY DETECTED
R  goodbye.txt -> moved.txt

$ git diff -M -C --summary --cached
 create mode 100644 copied.txt  <------------ NO COPY DETECTED
 rename goodbye.txt => moved.txt (100%)

$ git commit …
Run Code Online (Sandbox Code Playgroud)

git

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

如何重命名文件,以便git知道我正在重命名它?

当我重命名文件时,git认为我删除了该文件并创建了另一个文件.如何重命名文件,以便git知道我正在"重命名"它?

git

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