社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

Git没有添加一些文件

wolfv • 3 年前 • 1130 次点击  

我正在使用git来控制Linux家用电脑上的用户配置文件的版本。

Git拒绝将这两个文件添加到用户配置存储库:

~/.emacs.d/.cache/bookmarks
~/.emacs.d/.cache/recentf

目录emacs。d/包含一个。git存储库。 外部的所有文件。emacs。d/在没有问题的情况下添加。

有没有办法跟踪这两个文件,就好像它们不在另一个git存储库中一样? Git子模块似乎有点过头了。

我正在Fedora 35工作站上运行git 2.33.1版。

以下是一些可能相关的其他事项:

gitc别名在my中定义。bashrc文件:

alias gitc='/usr/bin/git --git-dir=$HOME/config_repo --work-tree=$HOME'

Git add执行并以静默方式返回,但未添加任何内容:

$ gitc add .emacs.d/.cache/bookmarks .emacs.d/.cache/recentf
$ gitc status
On branch clean_install_orphan
nothing to commit (use -u to show untracked files)

这个emacs。d/。缓存/文件未列在跟踪的提交文件中:

$ gitc ls-files .emacs.d/.cache/bookmarks .emacs.d/.cache/recentf

不返回任何内容。

编辑完之后。emacs。d/。cache/recentf文件,未在以下文件中列出:

$ gitc status

因为它从未被添加。

“添加力”选项会得到类似的结果:

$ gitc add -f .emacs.d/.cache/bookmarks .emacs.d/.cache/recentf

文件存在且路径正确:

$ cd ~
$ ls -l .emacs.d/.cache/recentf
-rw-------. 1 wolfv wolfv 2999 Jan 11 00:41 .emacs.d/.cache/recentf
$ ls -l .emacs.d/.cache/bookmarks
-rw-r--r--. 1 wolfv wolfv 1663 Jan  2 10:39 .emacs.d/.cache/bookmarks

没有。吉特。Gitu在家中忽略全局文件。

存储库的排除文件为空:

$ more config_repo/info/exclude
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~

初始化存储库时使用了--bare选项:

$ git init --bare $HOME/config_repo

这应该不会造成问题。

.缓存不是符号链接:

$ ls -la .emacs.d/
..
drwxr-xr-x. 1 wolfv wolfv    452 Jan 11 00:41 .cache
..
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/131932
 
1130 次点击  
文章 [ 1 ]  |  最新文章 3 年前
torek
Reply   •   1 楼
torek    3 年前

你提到:

目录 .emacs.d/ 包含一个 .git 存储库。

这就是问题所在。Git将拒绝在Git存储库中存储Git存储库。这有很多好的理由。理论上,你可以通过重命名 吉特先生 例如。, .got 然后再加上,但不要这样做。

如果你试图 git add 从一个Git存储库到另一个Git存储库,“外部”存储库最终将包含 提及 (不是)内部存储库的副本。在内部,这个引用采用Git称为 gitlink .gitlink是Git的关键部分 子模块 ,但不是所有的子模块:为了让子模块“正常工作”,Git存储了第二个关键部分 .gitmodules 这个 git添加 命令将创建或更新gitlink,但不会创建正确的 .Git模块 文件

你可以:

  • 停止使用 分离 内部的Git存储库 .emacs.d
  • 只需将其视为两个存储库(处理或不处理) emacs先生。D 并备份和/或复制这两个Git存储库。

治疗 emacs先生。D git submodule add 至少一次来创建 .Git模块 向上级(或 超级项目 )数据库所在的存储库 --git-dir=$HOME/config_repo .在这种情况下 gitc submodule add ,这可能有效,但我不知道与 --git-dir 参数与子模块(它们本身使用 --git目录 内部)通常在Git构建时进行测试。为了避免将其作为子模块使用,只需继续您已经在做的事情,并且 不要 gitc add .emacs.d .