标签: git-stage

为什么结帐有时会暂存文件?

当我第一次开始使用Git时,我发现checkout命令很混乱.但是,当我适应Git的版本控制模型时,它开始变得有意义了.现在我不得不向同事们教Git,我想checkout简单解释一下.我以为我有一个简单的解释(来自文档):

签出一个或多个工作树的路径

这似乎统一了一些你可以用结帐做的事情,这对于Git的新手来说似乎是一组多样化的操作:

git checkout .
git checkout HEAD .
git checkout HEAD~2
git checkout feature/update-readme README.md
Run Code Online (Sandbox Code Playgroud)

...除了最后一个,因为这不只是更新工作目录,它会分段文件.

我如何理解为什么或何时结账会导致某些事情上演而不是仅仅复制到工作目录中?

git working-directory git-checkout git-index git-stage

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

为什么android studio编译后会修改gitignore中的文件?

我有一个名为 VersionUtil 的文件并将其设置到 gitignore 中。在 gitignore 文件中,我有

# Git info
app/src/main/java/com/test/util/VersionUtil.java
Run Code Online (Sandbox Code Playgroud)

在android studio中运行项目之前,VersionUtil.java中有一行代码:

public static final String COMMIT_INFO = "info".
Run Code Online (Sandbox Code Playgroud)

我运行 git status 并返回

Your branch is up-to-date with 'origin/develop'.
Run Code Online (Sandbox Code Playgroud)

但是,在我运行该项目后,VersionUtil.java 发生了变化。那一行是:

public static final String COMMIT_INFO = "6a604 XXXXX ".
Run Code Online (Sandbox Code Playgroud)

返回的 git 状态

modified:   app/src/main/java/com/test/util/VersionUtil.java
Run Code Online (Sandbox Code Playgroud)

你们有什么想法吗?为什么 gitignore 中的文件仍在被跟踪?任何帮助,将不胜感激。

git gitignore git-stage

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

删除暂存文件并重置为原始版本

如果我在暂存区域中有一个文件(显示在 中git diff --cached)并且我想完全删除它,我该怎么做?
正在做

git reset HEAD -- file  
git checkout -- file  
Run Code Online (Sandbox Code Playgroud)

是的,但是这 2 个操作有 1 个命令吗?

git git-reset git-stage

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

Git跟踪未跟踪的文件而不添加提交

我运行了“ git reset”命令,但是我的未暂存更改已放入文件夹中。运行git status后,我得到如下内容:

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:   file1
    modified:   file2
    modified:   file3
    modified:   file4
    modified:   file5

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

    folder1
    folder2
    folder3
    folder4
Run Code Online (Sandbox Code Playgroud)

每个文件夹都包含我修改过的多个文件,但是由于某种原因被归类到这些文件夹中。

我需要将这些更改分成多个拉取请求,因此“ git commit -a”将不会执行。

我看到的最佳解决方案是“ git add -all”,复制“ git status”,然后再次“ git reset”,但这似乎很费劲。

有更好的解决方案吗?

git version-control git-reset git-stage git-untracked

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