我创建了一个包含大量源文件和文件夹的文件夹。
现在我想将common文件夹移动到include文件夹中,这样它看起来就像include/common
我试过这些:
Git添加包含 Git mv common/ include/ 但是它会因为这个错误而失败 致命:坏源,源=myrepo/common,目的地=myrepo/include 我尝试了git mv common/ include/common,但我得到了相同的错误
你知道怎么做到吗?
我创建了一个包含大量源文件和文件夹的文件夹。
现在我想将common文件夹移动到include文件夹中,这样它看起来就像include/common
我试过这些:
Git添加包含 Git mv common/ include/ 但是它会因为这个错误而失败 致命:坏源,源=myrepo/common,目的地=myrepo/include 我尝试了git mv common/ include/common,但我得到了相同的错误
你知道怎么做到吗?
当前回答
使用Git Tortoise非常简单。
右拖动源到目标(选择源,按住鼠标右键,拖动到目标,释放鼠标)。
将显示一个菜单,其中有Git移动版本的项目和Git移动和重命名版本的项目。
当然,git回购应该在本地克隆
其他回答
确保在运行之前已将所有更改添加到暂存区域
git mv oldFolderName newFoldername
Git错误失败
fatal: bad source, source=oldFolderName/somepath/somefile.foo, destination=newFolderName/somepath/somefile.foo
是否有任何未添加的文件,所以我才知道。
另一种方法是将目录中的所有文件移动到子目录(保持git历史):
$(ls | grep -v 'subDir');做git mv $file subDir;完成;
我通过这样做解决了这个问题:
电源外壳控制台 运行dir Alt-click并拖动文件/文件夹名称列,然后复制 粘贴到notepad++ 执行replace with regex: replace (.*) with git mv "。\ \ \ 1”。\ \ < New_Folder_Here > \” 从notepad++复制所有文本到powershell 回车
我有类似的问题,但在文件夹,我想移动我有文件,我没有跟踪。
假设我有文件
a/file1
a/untracked1
b/file2
b/untracked2
我想只移动跟踪文件到子文件夹subdir,所以目标是:
subdir/a/file1
subdir/a/untracked1
subdir/b/file2
subdir/b/untracked2
我所做的是:
I created new folder and moved all files that I was interested in moving: mkdir tmpdir && mv a b tmpdir checked out old files git checkout a b created new dir and moved clean folders (without untracked files) to new subdir: mkdir subdir && mv a b subdir added all files from subdir (so Git could add only tracked previously files - it was somekind of git add --update with directory change trick): git add subdir (normally this would add even untracked files - this would require creating .gitignore file) git status shows now only moved files moved rest of files from tmpdir to subdir: mv tmpdir/* subdir git status looks like we executed git mv :)
如果你使用的是GitLab,它集成的Web-IDE可以用于一些文件管理任务,包括移动和重命名(不需要本地克隆)。
单击存储库主窗口上的Web-IDE。
右键单击文件夹并选择重命名/移动(例如将src移动到foo/bar/src)。这些变化将显示在web ide中。
记得要承诺!