我有一个项目的工作副本,没有任何源控制元数据.现在,我想在这个文件夹中执行相当于git-clone的操作,并保留我的本地更改.
git-clone不允许我克隆到现有文件夹中.这里的最佳做法是什么?
ami*_*tas 497
这可以通过克隆到新目录,然后将.git目录移动到现有目录来完成.
如果您的现有目录名为"code".
git clone https://myrepo.com/git.git temp
mv temp/.git code/.git
rm -rf temp
Run Code Online (Sandbox Code Playgroud)
这也可以在克隆命令期间不进行结账时完成; 更多信息可以在这里找到.
And*_*rey 254
不要克隆,取而代之.在回购:
git init
git remote add origin $url_of_clone_source
git fetch origin
git checkout -b master --track origin/master # origin/master is clone's default
Run Code Online (Sandbox Code Playgroud)
然后,您可以重置树以获得所需的提交:
git reset origin/master # or whatever commit you think is proper...
Run Code Online (Sandbox Code Playgroud)
而你就像克隆了一样.
这里有趣的问题(以及没有回答的问题):如何找出裸树所基于的提交,从而确定要重置的位置.
ale*_*zel 57
以下我做了,检查现有目录中的master分支:
git init
git remote add origin [my-repo]
git fetch
git checkout origin/master -ft
Run Code Online (Sandbox Code Playgroud)
jhw*_*ist 37
我将git clone转到一个新目录并将现有目录的内容复制到新克隆.
小智 31
使用临时目录很好,但如果你想避免这一步,这将有效.从工作目录的根目录:
$ rm -fr .git
$ git init
$ git remote add origin your-git-url
$ git fetch
$ git reset --mixed origin/master
Run Code Online (Sandbox Code Playgroud)
nwi*_*llo 11
git init
git remote add origin git@github.com:<user>/<repo>.git
git remote -v
git pull origin master
Run Code Online (Sandbox Code Playgroud)
ret*_*.at 10
git clone your_repo tmp && mv tmp/.git . && rm -rf tmp && git reset --mixed
Run Code Online (Sandbox Code Playgroud)
okT*_*alk 10
要将 git 存储库克隆到空的现有目录中,请执行以下操作:
cd myfolder
git clone https://myrepo.com/git.git .
Run Code Online (Sandbox Code Playgroud)
请注意命令.末尾的git clone。这会将存储库下载到当前工作目录中。
很多答案已经按照OP要求的方式进行了。但值得注意的是,相反的做法要简单得多:
git clone repo-url tmp/
cp -R working/ tmp/
Run Code Online (Sandbox Code Playgroud)
您现在拥有所需的目标状态 - 新鲜克隆 + 本地更改。
| 归档时间: |
|
| 查看次数: |
299382 次 |
| 最近记录: |