當前位置:首頁 » 網路管理 » 如何刪除伺服器git
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

如何刪除伺服器git

發布時間: 2023-03-03 15:01:24

A. 如何刪除伺服器上的git project

伺服器上的 Git
到目前為止,你應該已經學會了使用 Git 來完成日常工作。然而,如果想與他人合作,還需要一個遠程的 Git 倉庫。盡管技術上可以從個人的倉庫里推送和拉取修改內容,但我們不鼓勵這樣做,因為一不留心就很容易弄混其他人的進度。另外,你也一定希望合作者們即使在 自己不開機的時候也能從倉庫獲取數據 — 擁有一個更穩定的公共倉庫十分有用。因此,更好的合作方式是建立一個大家都可以訪問的共享倉庫,從那裡推送和拉取數據。我們將把這個倉庫稱為 「Git 伺服器」;代理一個 Git 倉庫只需要花費很少的資源,幾乎從不需要整個伺服器來支持它的運行。
架設一台 Git 伺服器並不難。第一步是選擇與伺服器通訊的協議。本章第一節將介紹可用的協議以及各自優缺點。下面一節將介紹一些針對各個協議典型的設置以及如何在伺服器 上實施。最後,如果你不介意在他人伺服器上保存你的代碼,又想免去自己架設和維護伺服器的麻煩,倒可以試試我們介紹的幾個倉庫託管服務。
如果你對架設自己的伺服器沒興趣,可以跳到本章最後一節去看看如何申請一個代碼託管服務的賬戶然後繼續下一章,我們會在那裡討論分布式源碼控制環境的林林總總。
遠程倉庫通常只是一個_裸倉庫(bare repository)_ — 即一個沒有當前工作目錄的倉庫。因為該倉庫只是一個合作媒介,所以不需要從硬碟上取出最新版本的快照;倉庫里存放的僅僅是 Git 的數據。簡單地說,裸倉庫就是你工作目錄中.git 子目錄內的內容。

4.1 協議
Git 可以使用四種主要的協議來傳輸數據:本地傳輸,SSH 協議,Git 協議和 HTTP 協議。下面分別介紹一下哪些情形應該使用(或避免使用)這些協議。
值得注意的是,除了 HTTP 協議外,其他所有協議都要求在伺服器端安裝並運行 Git。
本地協議
最基本的就是_本地協議(Local protocol)_,所謂的遠程倉庫在該協議中的表示,就是硬碟上的另一個目錄。這常見於團隊每一個成員都對一個共享的文件系統(例如 NFS)擁有訪問權,或者比較少見的多人共用同一台電腦的情況。後面一種情況並不安全,因為所有代碼倉庫實例都儲存在同一台電腦里,增加了災難性數據損失 的可能性。
如果你使用一個共享的文件系統,就可以在一個本地文件系統中克隆倉庫,推送和獲取。克隆的時候只需要將遠程倉庫的路徑作為 URL 使用,比如下面這樣:
$ git clone /opt/git/project.git

或者這樣:
$ git clone file:///opt/git/project.git

如果在 URL 開頭明確使用 file:// ,那麼 Git 會以一種略微不同的方式運行。如果你只給出路徑,Git 會嘗試使用硬鏈接或直接復制它所需要的文件。如果使用了file:// ,Git 會調用它平時通過網路來傳輸數據的工序,而這種方式的效率相對較低。使用 file:// 前綴的主要原因是當你需要一個不包含無關引用或對象的干凈倉庫副本的時候 — 一般指從其他版本控制系統導入的,或類似情形(參見第 9 章的維護任務)。我們這里僅僅使用普通路徑,這樣更快。
要添加一個本地倉庫作為現有 Git 項目的遠程倉庫,可以這樣做:
$ git remote add local_proj /opt/git/project.git

然後就可以像在網路上一樣向這個遠程倉庫推送和獲取數據了。

B. git如何撤銷刪除的遠程分支

貌似沒有撤銷刪除分支的操作,不過恢復的話可以
1)如果自己其他目錄(或者其他同事那)還有一個沒同步完伺服器你刪除分支操作的代碼庫:
$git checkout hotfixes //切到你的那個hotfixes分支

$git push origin HEAD:hotfixes-new

2)如果你記錄有hotfixes分支上最後一次提交的commit-id(SHA值):
$git checkout -b hotfixes ./f8/
$git log
你的hotfixes分支上的提交又出來了 0 0!
$git push origin HEAD:hotfixes-new
如果你找不到那個commit-id,記得它的時間也可以,去.git/objects
$ll
2013-11-14 12:52 ba/
2013-11-14 12:51 e7/
2013-11-14 12:53 f2/
2013-11-14 12:52 f8/ 找下那個時間段的提交,然後
$find .
./f8/ 找到這個
查看是不是那個提交
$git show f8 //去掉.啊/啊什麼的
N多個提交分不清的話,分別git show xxxxxx git show xxxxxx git show xxxxxx git show xxxxxx
只能GOOD LUCK FOR YOU!!!

C. git從伺服器下載總是在地址後面多了一個斜杠

有一個項目一直是再我們localhost伺服器A下使用的git做的開發。最近需要搬移到線上的伺服器B上。
目的:要保留原有的所有的開發記錄。
一開始,我准備是直接clone一份最新的,然後以這個為原始版本開創建,發現這個是不可取的。
最後想到的一個辦法就是,登陸到A上面,切換到git用戶組,使用scp將整個repositories下的項目目錄到伺服器B的git repositories下。那樣就能保留原有的文件所有者規git所有。然後在伺服器B上創建一個跟剛才過去的項目。就可以直接在本地使用B伺服器上的git地址進行開發了。
如果您是使用的別人的git倉庫,比如github。那就看看下面這篇我在網上找的文章:
如果你想從別的 Git 託管服務那裡復制一份源代碼到新的 Git 託管伺服器上的話,可以通過以下步驟來操作。
1). 從原地址克隆一份裸版本庫,比如原本託管於 GitCafe。
git clone –bare [email protected]:username/project.git
2). 然後到新的 Git 伺服器上創建一個新項目,比如 GitHub。
3). 以鏡像推送的方式上傳代碼到 GitHub 伺服器上。
cd project.git
git push –mirror [email protected]:username/newproject.git
4). 刪除本地代碼
cd ..
rm -rf project.git
5). 到新伺服器 GitCafe 上找到 Clone 地址,直接 Clone 到本地就可以了。
git clone [email protected]:username/newproject.git
這種方式可以保留原版本庫中的所有內容。