相关疑难解决方法(0)

提交空文件夹结构(使用git)

我在项目的根目录中有数据目录.它有图像目录和一些文件.这是一个例子:

  • 数据/
    • 图片/
      • image1.jpg
      • image2.jpg
      • image2.jpg
    • results.csv
    • r.txt

在gitignore中写什么,忽略数据/目录中的文件(即results.csv和r.txt)和images /目录中的文件(image.jpg,image2.jpg,image3.jpg)?

当我提交它时,存储库中的文件夹结构应该是:

  • 数据/
    • 图片/

所以,我只想要提交空文件夹结构.

git gitignore

65
推荐指数
5
解决办法
11万
查看次数

Git mv因Fatal而失败:源目录为空

我想在repo的子文件夹中维护文件的历史记录.但我需要重命名顶级文件夹名称.当我运行'git mv dirName newDirName我得'致命:源目录为空;'

我的源目录具有以下结构:

gitRepoDir
--.git
--Source 
--  -DirLevel2 
--   --DirLevel3 
--     --DirLevel4 
--       --DirLevel5 
+++       --DirNameToRename 
+++         --sub1dir 
+++           --File 
+++         --sub2dir 
+++           --File 
+++         --sub3dir 
+++           --File 
+++           --File 
+++         --sub4dir 
+++           --File
Run Code Online (Sandbox Code Playgroud)

有没有办法重命名顶级文件夹并维护以下子文件夹中的文件历史记录?或者我是否需要先创建目录结构然后使用git mv命令移动文件?

git

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

如何将目录提交到git存储库?

我在这里阅读了很棒的git教程,我无法创建目录.

我的文件夹结构是:

代码 - Python - C++ - F# - ...

在初始化的本地存储库"代码"中,我更改为子文件夹"Python","C++",...确实git init,现在我想在我的版本控制服务器上使用相同的结构.

% git commit -m "added directories"
# On branch master
nothing to commit (working directory clean)
Run Code Online (Sandbox Code Playgroud)

我想我得到了一些完全错误的东西,是吗?

谢谢,愿

git

21
推荐指数
2
解决办法
6万
查看次数

如何在git中列出目录树的更改历史记录

Git不会跟踪目录.它只跟踪某些目录中的文件.(请参阅如何将空目录添加到Git存储库?)

但是,如果我有一定的提交历史,我隐含地也有目录树的更改历史记录.

那么我该如何回答以下问题:

  1. 何时创建了目录foo/bar(在git术语中:何时是该目录中创建的第一个文件).如果在历史记录中删除了foo/bar并稍后重新创建,则可能会有多个限定提交.
  2. 何时删除了目录foo/bar(在git术语中:何时从该目录中删除了最后一个文件).如上所述,可能会有多个符合条件的提交.
  3. foo/bar的子目录在历史的任何时间点都存在

我能想出的最接近的是伪代码:

loop over all commits (git rev-list --all)
  start from repo root directory
  do recursively on the directory tree rebuilt so far
    call git ls-tree and grep the tree lines
    rebuild next level of directory tree
  end
end
Run Code Online (Sandbox Code Playgroud)

显然,这可以用您最喜欢的脚本语言编写.

然后我有所有目录树,我仍然需要以聪明的方式搜索它们,以便回答类型1 - 3的问题.再次,可行,但可能不会在几分钟内.

问题是:

  1. 有没有更简单的方法?
  2. 如果没有:是否适合网上已有的脚本?(我的谷歌搜索没有透露任何,但我也没有提出完美的搜索词)

git

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

Git:repo包含一个空目录 - 会发生什么?

Git 跟踪文件,而不是目录,我们当前不能add清空目录(标准技巧不会添加空目录,而是添加文件,请参阅常见问题解答).

然而,git repo可能包含一个空目录.那么我会克隆一个repo或签出一个包含空目录的分支会发生什么?它是在工作树中创建的吗?

git directory

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

Vim:如何恢复光标的逻辑和物理位置?

打开文件时如何恢复光标的"逻辑"和"物理"位置?

那是:

  1. 光标应位于文件中的最后一条逻辑行上.

  2. 根据vim窗口,光标应位于最后一次物理线上

我注意到这篇文章.它确实将光标放在右边的逻辑行上.但是窗口中的光标物理位置是第一行还是中间.

UPDATE:该解决方案是mkviewloadview作为由@sehe指出.

为了使它适用于其他插件(在我的情况下,乳胶文件+ 乳胶盒),以下将是有用的:

au BufWinLeave *.tex mkview

au VimEnter *.tex loadview

来自Vim的文档VimEnter:

  • 完成所有启动工作后,包括加载.vimrc文件,执行"-c cmd"参数,创建所有窗口并在其中加载缓冲区.

UPDATE2:更好地组织"view-snapshot-files"

通过创建文件夹~/.vim/view,您将保留所有"view-snapshot-files".

如果您使用的git~/.vim跨计算机同步,也许您愿意

  • 忽略文件~/.vim/view,
  • 但请将空文件夹保留在您的仓库中.

然后你需要(根据这里的答案添加)

  • 创建一个空文件: ~/.vim/view/.gitignore
  • 放入view/*,!.gitignore 放入~/.vim/.gitignore

vim

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

为什么不git版本目录?

我很清楚git不适用于空目录(这里是一个比较流行的git问题),但是我在问跟踪目录是否有特定的理由或理由(如果可能的话官方).

我问,因为目录在某些情况下可以自己拥有有意义的元数据.例如,如果使用粘滞模式,则目录的文件模式可能很重要.目录为空的这一事实对于应用程序而言可能很重要.

git

9
推荐指数
2
解决办法
1342
查看次数

Git会删除空文件夹吗?

我已经承诺并将项目推送到我的GitHub帐户.

该项目包含以下部分文件结构:

server 
|
--- conf
|
----- some files 
|
--- java
|
--- lib
Run Code Online (Sandbox Code Playgroud)

java和lib文件夹为空.
从GitHub下载我的项目时,生成的zip不包含java和lib文件夹.

Git会删除空文件夹吗?
我使用Atlassian的SourceTree作为我的Git客户端.

git github atlassian-sourcetree

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

为什么我不能在git中提交一个空文件夹?

这里的关键词是为什么。答案是很多问题,“ git不允许这样做”,但我想知道为什么它不允许这样做。

我一直在阅读有关git的体系结构,并且其中包含以下图像:

具有树节点的DAG

该图像显示, tree节点。从技术上讲,保存一个tree没有任何孩子的a看起来很简单。那么为什么git禁止这样做呢?

本书的一部分提到了这一点:

对于更改后的文件上方的每个目录(加上存储库根目录),将创建一个具有新标识符的新树对象。从新创建的根树对象开始创建DAG,该对象指向Blob(在此提交中重用文件内容未更改的现有Blob引用),并引用新创建的Blob代替该文件在先前树层次结构中的先前Blob对象。 。(blob代表存储在存储库中的文件。)

我觉得这可能是原因,但是对于我想要回答的内容来说,这有点掩饰细节。

git

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

Git没有显示未跟踪的目录

git status命令不显示新的未跟踪目录,我不能git添加它们.我该如何解决这个问题?显示新的和未跟踪的文件,问题仅出现在新目录中.

git

6
推荐指数
3
解决办法
6386
查看次数

标签 统计

git ×9

atlassian-sourcetree ×1

directory ×1

github ×1

gitignore ×1

vim ×1