Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git总重置。删除所有文件。删除历史记录_Git_Ssh_Openshift - Fatal编程技术网

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