我不清楚以下是什么意思(来自git submodule update docs):
...将使子模块HEAD分离,除非
--rebase或--merge指定...
怎么--rebase/ --merge改变事情?
我的主要用例是有一堆中央存储库,我将通过子模块嵌入到其他存储库中.我希望能够改进这些中央回购,直接在他们的原始位置,或从他们的嵌入回购(通过子模块使用它们的那些).
我一直在阅读Git中的裸机和非裸机/默认存储库.我无法理解(理论上)它们之间的差异,以及为什么我应该"推"到一个裸存储库.这是交易:
目前,我是唯一一个在3台不同计算机上工作的人,但是后来会有更多人参与其中,所以我使用Git进行版本控制.我在所有计算机上克隆了裸仓库,当我在其中一台计算机上完成修改后,我提交并将更改推送到裸仓库.从我所读到的,裸存储库没有"工作树",所以如果我克隆裸仓库,我将没有"工作树".
我猜测工作树存储项目中的提交信息,分支等.这不会出现在裸仓库中.因此,对于我来说,使用工作树将提交"推送"到repo似乎更好.
那么,为什么我应该使用裸存储库,为什么不呢?有什么实际区别?我认为,这对于从事项目的更多人来说没有好处.
你做这种工作的方法是什么?建议?
不知何故,当我git init在大约一个月前编辑我的最新项目时,我在目录中运行了一个高于项目根目录的目录.
所以我的存储库位于./project目录而不是./project/my-new-project目录中.我不知道我之前没有意识到这个问题,但直到现在我才从未找过.git目录.
有没有办法,没有杀死我的项目,将存储库移动到正确的目录,然后告诉git项目的新基础是什么?只是移动目录不起作用.Git认为所有文件都已删除.
我有一个名为"www"的子目录,它是一个回购:
site
|-- www/
| |-- .git/
| |-- index.html
|-- design/
| |-- images.jpg
Run Code Online (Sandbox Code Playgroud)
我想将repo更改为父目录,以便repo结构镜像原始文件结构,如下所示:
site
|-- .git/
|-- www/
| |-- index.html
|-- design/
| |-- images.jpg
Run Code Online (Sandbox Code Playgroud)
可以这样做吗?那么将更改推向Gitlab会有什么影响吗?
你能提供一个(全部或最常见的)操作或命令列表,这些操作或命令会危害git中的历史记录吗?
什么应该绝对避免?
git commit/ git push/ git commit --amend)我希望这个问题(如果它还没有在其他地方之前提出过)成为关于git上常见的可避免操作的某种参考.
此外,我使用git reset了很多,但我还没有完全意识到我可以对存储库(或其他贡献者副本)造成的损害.可能git reset有危险吗?