我在本地(在新PC上)和github存储库上都有文件,我想在该PC上克隆/创建本地存储库。
我已经完成了以下步骤:
$ git init
Initialized empty Git repository in /home/sebastien/.git/
$ git remote add origin https://github.com/xxxxx/yyyyyyyy
$ git pull origin master
remote: Counting objects: 791, done.
remote: Compressing objects: 100% (615/615), done.
remote: Total 791 (delta 148), reused 743 (delta 102), pack-reused 0
Receiving objects: 100% (791/791), 2.04 MiB | 323.00 KiB/s, done.
Resolving deltas: 100% (148/148), done.
From https://github.com/xxxxx/yyyyyyyy
* [new branch] master -> origin/master
* branch master -> FETCH_HEAD
error: Untracked working tree file '.initBash/.AV_functions' would be overwritten by merge.
$ echo $?
128
$ git branch --set-upstream-to=origin/master master
fatal: branch 'master' does not exist
$ echo $?
128
编辑1:本地文件可以与远程存储库上的文件相同或更旧。
你能帮忙吗?
答案 0 :(得分:1)
错误:未经跟踪的工作树文件'.initBash / .AV_functions'将被合并覆盖。
您的本地文件将被覆盖。因此,要解决此问题,您可以在提取远程master
之前提交本地文件。
致命:分支'主'不存在
您没有本地master
所以,此错误。
按照说明操作:
首先,清理你的git历史。我更喜欢删除.git
文件夹,然后再次生成。
$ rm -rf .git
$ git init
提交本地文件/更改。
$ git add -A
$ git commit -m 'message'
使用远程repo的URL添加新的远程origin
。
$ git remote add origin https://github.com/xxxxx/yyyyyyyy
拉远程master
分支更改。
$ git pull origin master
如果发生冲突,则解决它。完成。
替代:如果新PC的本地更改不重要,并且您希望重置您的本地远程master
,请关注它:
$ git init
$ git remote add origin https://github.com/xxxxx/yyyyyyyy
$ git fetch
$ git reset --hard origin/master # local changes = origin/master changes
答案 1 :(得分:0)
问题是,文件的本地副本是否与远程仓库中的版本不同?如果是这样,你想用它们做什么?
如果它们没有区别,您可以删除它们并克隆回购。 (无论如何克隆repo都必须从远程复制文件。)
git clone url/of/remote/repo
如果本地文件不同,并且您不想丢弃差异,则需要确定它们所属的历史记录。这可能取决于这个版本的文件是如何出现的。
最简单的示例:文件是repo中最新版本(在某些分支上)的副本。那么也许他们只是表示要推送到该分支的更新。因此,如上所述克隆repo,然后通过工作树复制本地文件,并将其用作新提交的基础。
或者他们可能是repo中旧提交的修改版本?然后你可以创建一个新的分支,从那个旧的提交开始,然后从那里开始。 (通过回购,检查旧提交,创建并签出新分支,然后在工作树上复制本地版本。)
你可以首先提交本地副本(如另一个答案所示),但根据你的git版本,你可能需要提供特殊选项让git接受不相关的历史记录,当你您是否可能会在几乎所有内容上发生冲突bc git会看到两个不相关的更改行独立创建了每个相关文件。