我是git新手,最近继承了一个非功能性项目,可以访问该代码的本地生产版本。我对本地已签出的分支进行了更改,以使其再次运行。我无法提交这些更改,因为远程GitHub存储库是私有的,因此我创建了一个新存储库并尝试将代码检入到新存储库中,以希望维护项目的历史记录。这是我尝试过的内容:
git remote set-url origin https://github.com/newrepo.git
git commit -m "initial commit to new github repo"
git push -u origin --all
git push --prune https://github.com/newrepo.git +refs/remotes/origin/*:refs/heads/* +refs/tags/*:refs/tags/*
git push --mirror https://github.com/newrepo.git
这些都不起作用-我只能在新存储库中使用自述文件,也许是因为我没有对原始文件的读取权限?我不确定。
此后,我已经可以访问原始的私有存储库,并将其克隆到一个新的干净的存储库中,以便我可以维护项目的历史记录。我想检查一下代码的本地副本(包含更改),以获取所有信息。最好的方法是什么?
当我执行git status
时,它不再显示以前的已更改文件列表(由于我认为是提交)。我应该先做git commit -a
然后推送吗?我只是不确定。
答案 0 :(得分:2)
在新存储库中,我只剩下自述文件
在创建新存储库时,请确保将其创建为空。
但是在您的情况下,由于它是一次提交创建的,因此请强制执行。
git push --force -u origin master
git push --all
我想检查代码的本地副本(进行更改),以使一切都变得正常
您可以使用--work-tree
option将工作树文件夹设置为仅用于导入更改的旧克隆文件夹:
cd /path/to/local/clone
git --work-tree=/path/to/local/copy/with/changes add .
git commit -m "Integrate changes"
答案 1 :(得分:1)
我的理解:
我建议3个考虑选项(包括许多其他选项):
对于您的情况,我建议使用C,因为它应该非常简单,并且发生的事情与RepoB无关。
cd path/to/repoA
git checkout -b theBestBranchNameEver
-在 RepoA 中创建一个新分支。git add --all
git commit -am "Commit message here"
git push
现在,RepoA包含一个分支,该分支将您的本地更改作为一次提交。现在,您可以将更改合并到一个公共分支中(例如develop
或master
)。
您根本不需要任何强制或高级git命令。