我经常发现自己在Git中改变了我的项目中的单个变量,以便在开发分支上连接到不同的服务器(在JavaScript中,所以我不能使用预处理器定义).
在Git中是否有某种方法我可以有条件地使用一个或另一个文件,具体取决于我所在的分支?
我不能只使用指定的不同URL提交更改,因为这样做会将其保留在我的提交历史记录中,如果我稍后在Master上合并后再返回该版本,它将具有开发服务器URL.
我删除了它的工作目录,因为这个git工作树不再有用了,然后我git branch -D pubsub-sketch-tree在主存储库的目录下.抛出的错误:
error: Cannot delete branch 'pubsub-sketch-tree' checked out at '/Users/zhouhancheng/??/github_own/sketch_worktree/pubsub-sketch_tree'
Run Code Online (Sandbox Code Playgroud)
但是'/ Users/zhouhancheng /编程/ github_own/sketch_worktree/pubsub-sketch_tree'已被删除.
我的本地机器上有一个存储库。这个存储库有 2 个 git 遥控器。遥控器 A 和 B。
user.name X和user.email Y。user.name Z和user.email W。这可以在git中实现吗?如果是这样,如何?
我是使用 Git 的新手,我从 GitHub 克隆了一个分支,当我输入git branch. 完成我的工作后,我成功地将其推送到了一个新的分支。之后,我将该文件夹复制到另一个目录(因为我想有一个备份以避免冲突),输入它,然后键入git branch. 只显示了 3 个分支,知道我在 Github 上有 4 个。
我试图通过将分支克隆到一个新文件夹(输入git clone -b <branch-name> <repo-link-https>)中来解决这个问题,现在只有我克隆的分支出现了..
请问有什么建议吗?
我们有一个被多个用户使用的服务器。磁盘空间是一个很大的限制,因为我们的 git repo 非常大,每次有人克隆它时,它都会消耗 130G 的空间。
我知道 git 不是设计为集中式工作流,但这是一种非常特殊的情况。我们考虑过升级硬件,但这是一条很长的路,因为它不是云实例。
我试着摆弄,git worktree但很快就遇到了权限问题。我的理想设置是一个单一的存储库,多个用户可以通过它推送和拉取。
我查看了以前的线程,但不幸的是那里没有可靠的建议,而且它们是很旧的线程。因此,任何新的建议将不胜感激。
假设我有一个库Common,可以使用独立的,并且所使用的项目P1和P2,因此,树我想要的样子
/Common/.git
...
/P1/.git
.gitmodules # points to remote server
Common/
...
/P2/.git
.gitmodules # points to remote server
Common/
...
Run Code Online (Sandbox Code Playgroud)
当我进行更改时/Common,我希望能够在提交之前P1和P2之前测试它.使用通常的git submodule命令集,我将不得不提交/Common,推送到远程,然后从两个/P1/Common和/P2/Common.如果提交中断了某些内容,则无法修改,因为已经发布了错误的更改.或者,我可以git remote add quicktest /Common在/P?/Common不触摸远程服务器的情况下拉动.但是这有很多不一致的机会,并且删除破坏的提交是很脏的,/P?/Common以便可以修改它们/Common.
我宁愿认为,在开发过程中,从工作树/Common被使用P1和P2,但我不能让/P1/Common一个符号链接/Common,因为git submodule识别符号链接从目录不同.大多数文件系统不允许使用硬链接目录.我可以使用硬链接所有文件
rm -rf /P1/Common
cp -rl /Common /P1/Common
Run Code Online (Sandbox Code Playgroud)
/Common在添加新文件之前效果很好,在这种情况下需要重复此过程.两者都有优雅的方式吗?
git …简而言之,这是我的项目结构:
+ A
| + some content
|
+ B
+ A
Run Code Online (Sandbox Code Playgroud)
我希望在我的主 git 存储库中有一个B指向A. 但由于该A项目包含 main 方法,我希望能够在提交之前快速测试,因此我想要一个指向的符号链接(或者更确切地说,mklink因为我在 Windows 上)A,以便它无需提交即可更新。
根据我迄今为止阅读GIT的经验,我发现工作目录似乎有点过载.有时人们指的是检查分支的硬盘驱动器上的目录,例如在克隆存储库时,分支被检出到repo的新克隆的目录中.
但有时人们只是指一个抽象的位置,其中包含未跟踪的文件和修改过的文件,即输入时的红色文本git status
我希望有人可以让我知道工作目录的官方定义.即使是在线的Pro Git书籍也确实有点含糊不清.
注意:我每天都使用它,我只是想知道它是什么.
干杯
github桌面程序有一个用于本地存储库的自动命名方案,我找不到手动更改它们的方法。
考虑一下侧边栏的屏幕截图,
具有4个相同的名称,很难导航。这些文件夹是“等离子”组织下的通用存储库“文件”的不同副本(实际上是不同的分支)。奇怪的是,并非该组织的所有存储库的plasmonics/标题都显示在侧边栏中,我无法确定是什么触发了差异。无论如何,我希望找到一种方法来手动重命名那些侧边栏名称。可能吗?
假设我有一个 git 工作目录,即该目录有一个名为 .git 的子目录.git。
我想知道当我运行 git 命令时当前目录是否重要。可以运行 git 命令吗
直接在工作目录下
直接在工作目录(的子目录)的某个子目录下
直接在工作目录的父目录下?
考虑
git add和git pull, git push.git ×9
github ×2
config ×1
gerrit ×1
git-branch ×1
git-worktree ×1
linux ×1
mklink ×1
symlink ×1
windows ×1