Git总重置。删除所有文件。删除历史记录
我有一个现有的存储库(位于Git总重置。删除所有文件。删除历史记录,git,ssh,openshift,Git,Ssh,Openshift,我有一个现有的存储库(位于ssh://xxx@yyy.rhcloud.com/~/git/dev.git/),未克隆到我的计算机。它太大太乱了,我不想下载,我不再需要它了。我想重新开始,完全取代它的内容。我该怎么做 我以前使用过SmartGit来提交。我还可以通过ssh连接到我的存储库xxx@yyy.rhcloud.com在Git Bash中。这就是我对git的了解。我只想以这样一种方式重置存储库:当我将其克隆到我的计算机时,我得到的只是一个空目录。如果您确实可以访问远程git服务器,您可以使用
ssh://xxx@yyy.rhcloud.com/~/git/dev.git/
),未克隆到我的计算机。它太大太乱了,我不想下载,我不再需要它了。我想重新开始,完全取代它的内容。我该怎么做
我以前使用过SmartGit来提交。我还可以通过
ssh连接到我的存储库xxx@yyy.rhcloud.com
在Git Bash中。这就是我对git的了解。我只想以这样一种方式重置存储库:当我将其克隆到我的计算机时,我得到的只是一个空目录。如果您确实可以访问远程git服务器,您可以使用ssh执行软删除:
ssh xxx@yyy.rhcloud.com
cd ~/git/
mv dev.git dev.old.git
git init --bare dev.git
然后,您可以再次克隆该回购协议,从头开始
git clone ssh://xxx@yyy.rhcloud.com/~/git/dev.git
cd dev
# the folder is empty
由于文件夹
~/git
属于root
,因此您只需在其他位置创建一个新的dev
bare repo即可:
ssh xxx@yyy.rhcloud.com
cd ~
mkdir newgit
cd newgit
git init --bare dev.git
然后
如果无法更改/删除远程设备,可以将
--deph
选项设置为1来克隆存储库,以便仅克隆最后一次提交:
git clone --depth=1 bigmessyrepo
它不会更改远程,但您的本地远程将更加轻量级。只需创建本地git repo,添加初始提交,添加远程并强制推送:
$ mkdir newfolder && cd newfolder
$ git init
$ touch README.md
$ git add README.md
$ git commit -m "Initial commit"
$ git remote add openshift ssh://xxx@yyy.rhcloud.com/~/git/dev.git/
$ git push openshift master -f
mv命令错误可能重复
mv:无法将
dev.git'移动到dev.git.old”:权限被拒绝
。有什么建议吗?哪个用户/组拥有该文件夹?试试ls-alrth,好像我(xxx)是所有者drwxr-xr-x。8 xxx xxx 4.0K Jul 10 06:50 dev.git
但root拥有~/git文件夹drwxr-xr-x。3根根目录2015年12月25日20日。
好的,但是父文件夹的所有者是谁?是的,您需要找到另一个属于您的文件夹,您可以在其中执行git init bare,因为MV无法工作。非常感谢您提供的逐步说明。工作起来很有魅力。如果我正确地解释了一切,这只会改变主分支,而不会影响其他分支。
$ mkdir newfolder && cd newfolder
$ git init
$ touch README.md
$ git add README.md
$ git commit -m "Initial commit"
$ git remote add openshift ssh://xxx@yyy.rhcloud.com/~/git/dev.git/
$ git push openshift master -f