導航:首頁 > 編程大全 > mac刪除git賬號和密碼

mac刪除git賬號和密碼

發布時間:2024-08-08 09:53:08

⑴ mac 怎麼安裝git 伺服器

本文介紹如何在 mac 機器上創建 Git 伺服器,總體思路是:使用gitosis來簡化創建過程,在用作伺服器的機器上創建一個名為 git 的賬戶來創建 git 伺服器,其他客戶端通過 ssh 機制訪問 git 伺服器。

一,創建 git 賬戶

1,在用作伺服器的機器上創建 git 賬戶。我們可以通過 System Preferences->accounts 來添加。在這里我添加一個 git 的 administrator 賬戶,administrator 不是必須的,在這里僅僅為了方便。

2,設置遠程訪問

logout 當前賬戶,使用 git 賬戶登錄;在 System Preferences->Sharing 中,勾選 Remote Login。

二,下載安裝 gitosis

1,Mac OSX Yosemite 默認已經為我們安裝了 Git 和 Python,可以使用如下命令查看其版本信息:

yourname:~ git$git--version
git version 2.3.2 (Apple Git-55)
yourname:~ git$python--version
Python 2.7.9

2,通過命令 git clone [email protected]:tv42/gitosis.git 來下載 gitosis

yourname:~ git$ git clone [email protected]:tv42/gitosis.git
Cloning into gitosis
remote: Counting objects: 614, done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 614 (delta 434), reused 594 (delta 422)
Receiving objects: 100% (614/614), 93.82 KiB | 45 KiB/s, done.
Resolving deltas: 100% (434/434), done.

3,進入 gitosis 目錄,使用命令 sudo python setup.py install 來執行 python 腳本來安裝 gitosis。

yourname:~ git$ cd gitosis/yourname:gitosis git$ sudo python setup.py install
running install
running bdist_egg
running egg_info
creating gitosis.egg-info
……
Using /Library/Python/2.6/site-packages/setuptools-0.6c9-py2.6.egg
Finished processing dependencies for gitosis==0.2

三,製作 ssh rsa 公鑰

1,回到 client 機器上,製作 ssh 公鑰。在這里我的使用同一台機器上的另一個賬戶作為 client。如果作為 client 的機器與作為 server 的機器不是同一台,也是類型的流程:製作公鑰,放置到服務的 /tmp 目錄下。只不過在同一台機器上,我們可以通過開啟另一個 terminal,使用 su 切換到 local 賬戶就可以同時操作兩個賬戶。

yourname:~ git$ su local_accountPassword:bash-3.2$ cd ~
bash-3.2$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/local_account/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:Your identification has been saved in /Users/local_account/.ssh/id_rsa.
Your public key has been saved in /Users/local_account/.ssh/id_rsa.pub.

bash-3.2$ cd .ssh
bash-3.2$ ls
id_rsa id_rsa.pub
bash-3.2$ cp id_rsa.pub /tmp/yourame.pub

在上面的命令里,首先通過 su 切換到 local 賬戶(只有在同一台機器上才有效),然後進入到 local 賬戶的 home 目錄,使用 ssh-keygen -t rsa 生成 id_rsa.pub,最後將該文件拷貝放置到 /tmp/yourname.pub,這樣 git 賬戶就可以訪問 yourname.pub了,在這里改名是為了便於在 git 中辨識多個 client。

四,使用 ssh 公鑰初始化 gitosis

1,不論你是以那種方式(郵件,usb等等)拷貝 yourname.pub 至伺服器的 /tmp/yourname.pub。下面的流程都是一樣,登入伺服器機器的 git 賬戶,進入先前提到 gitosis 目錄,進行如下操作初始化 gitosis,初始化完成後,會在 git 的 home 下創建 repositories 目錄。

yourname:gitosis git$ sudo -H -u git gitosis-init < /tmp/yourname.pub
Initialized empty Git repository in /Users/git/repositories/gitosis-admin.git/
Reinitialized existing Git repository in /Users/git/repositories/gitosis-admin.git/

在這里,會將該 client 當做認證受信任的賬戶,因此在 git 的 home 目錄下會有記錄,文件 authorized_keys 的內容與 yourname.pub 差不多。

yourname:~ git$ cd ~yourname:~ git$ cd .sshyourname:.ssh git$ ls
authorized_keys

我們需要將 authorizd_keys 稍做修改,用文本編輯器打開它,刪除裡面的"command="gitosis-serve yourname",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty " 這一行:

yourname:.ssh git$ open -e authorized_keys

然後,我們對 post-update 賦予可寫許可權,以便 client 端可以提交更改。

yourname:gitosis git$ sudo chmod 755 /Users/git/repositories//gitosis-admin.git/hooks/post-update
Password:
yourname:.ssh git$ cd ~
yourname:~ git$ cd repositories/
yourname:repositories git$ ls
gitosis-admin.git
yourname:repositories git$

在上面的命令中可以看到,gitosis 也是作為倉庫的形式給出,我們可以在其他賬戶下 checkout,然後對 gitosis 進行配置管理等等,而無需使用伺服器的 git 賬戶進行。

最後一步,修改 git 賬戶的 PATH 路徑。

yourname:gitosis git$ touch ~/.bashrc
yourname:gitosis git$ echo PATH=/usr/local/bin:/usr/local/git/bin:$PATH > .bashrc
yourname:gitosis git$ echo export PATH >> .bashrc
yourname:gitosis git$ cat .bashrc
PATH=/usr/local/bin:/usr/local/git/bin:$PATHexport PATH

至此,伺服器的配置完成。

五,client 配置

1,回到 local 賬戶,首先在 terminal 輸入如下命令修改 local 的 git 配置:

bash-3.2$ git config --global user.name "yourgitname"bash-3.2$ git config --global user.email "[email protected]"

2,測試伺服器是否連接正確,將 10.1.4.211 換成你服務的名稱或伺服器地址即可。

yourname:~ local_account$ ssh [email protected] login: Mon Nov 7 13:11:38 2011 from 10.1.4.211

3,在本地 clone 伺服器倉庫,下面以 gitosis-admin.git 為例:

bash-3.2$ git clone [email protected]:repositories/gitosis-admin.git
Cloning into gitosis-adminremote: Counting objects: 5, done.remote: Compressing objects: 100% (5/5), done.remote: Total 5 (delta 0), reused 5 (delta 0)
Receiving objects: 100% (5/5), done.
bash-3.2$ ls
Desktop InstallApp Music Sites
Documents Library Pictures gitosis-admin
Downloads Movies Public
bash-3.2$ git

在上面的輸出中可以看到,我們已經成功 clone 伺服器的 gitosis-admin 倉庫至本地了。

4,在本地管理 gitosis-admin:
進入 gitosis-admin 目錄,我們來查看一下其目錄結構:gitosis.conf 文件是一個配置文件,裡面定義哪些用戶可以訪問哪些倉庫,我們可以修改這個配置;`keydir` 是存放ssh 公鑰的地方。

bash-3.2$ cd gitosis-admin/
bash-3.2$ ls
gitosis.conf keydir
bash-3.2$ cd keydir/
bash-3.2$ ls
yourname.pub

我們只需要將其他 client 產生的 ssh 公鑰添加到 keydir 目錄下,並在 gitosis.conf 文件中配置這些用戶可以訪問的倉庫(用戶名與放置在 keydir 下sh 公鑰名相同,這就是在前面我們要修改ssh 公鑰名的原因),然後將改動提交至伺服器,這樣就可以讓其他的 client 端訪問伺服器的代碼倉庫了。

5,倉庫許可權管理

gitosis.conf文件是用來設置用戶、倉庫和許可權的控制文件。keydir 目錄則是保存所有具有訪問許可權用戶公鑰的地方— 每人一個。在 keydir 里的文件名(比如上面的 yourname.pub)應該跟你的不一樣 — Gitosis 會自動從使用 gitosis-init 腳本導入的公鑰尾部的描述中獲取該名字。

看一下 gitosis.conf 文件的內容,它應該只包含與剛剛克隆的 gitosis-admin 相關的信息:

$ cat gitosis.conf
[gitosis]

[group gitosis-admin]
members = scott
writable = gitosis-admin

它顯示用戶 yourname — 初始化 Gitosis 公鑰的擁有者 — 是唯一能管理 gitosis-admin 項目的人。

現在我們來添加一個新項目。為此我們要建立一個名為 mobile 的新段落,在其中羅列手機開發團隊的開發者,以及他們擁有寫許可權的項目。由於 yourname 是系統中的唯一用戶,我們把他設為唯一用戶,並允許他讀寫名為 iphone_project 的新項目:

[group mobile]
members = scott
writable = iphone_project

修改完之後,提交 gitosis-admin 里的改動,並推送到伺服器使其生效:

$ git commit -am 'add iphone_project and mobile group'[master 8962da8] add iphone_project and mobile group
1 file changed, 4 insertions(+)
$ git push origin master
Counting objects: 5, done.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 272 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@gitserver:gitosis-admin.git
fb27aec..8962da8 master -> master

6,添加新項目到倉庫種

在新工程 iphone_project 里首次推送數據到伺服器前,得先設定該伺服器地址為遠程倉庫。但你不用事先到伺服器上手工創建該項目的裸倉庫— Gitosis 會在第一次遇到推送時自動創建:

$ git remote add origin git@gitserver:iphone_project.git
$ git push origin master
Initialized empty Git repository in /opt/git/iphone_project.git/
Counting objects: 3, done.
Writing objects: 100% (3/3), 230 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@gitserver:iphone_project.git
* [new branch] master -> master

請注意,這里不用指明完整路徑(實際上,如果加上反而沒用),只需要一個冒號加項目名字即可 — Gitosis 會自動幫你映射到實際位置。

要和朋友們在一個項目上協同工作,就得重新添加他們的公鑰。不過這次不用在伺服器上一個一個手工添加到 ~/.ssh/authorized_keys 文件末端,而只需管理 keydir 目錄中的公鑰文件。文件的命名將決定在 gitosis.conf 中對用戶的標識。現在我們為 John,Josie 和 Jessica 添加公鑰:

$ cp /tmp/id_rsa.john.pub keydir/john.pub
$ cp /tmp/id_rsa.josie.pub keydir/josie.pub
$ cp /tmp/id_rsa.jessica.pub keydir/jessica.pub

然後把他們都加進 mobile 團隊,讓他們對 iphone_project 具有讀寫許可權:

[group mobile]
members = scott john josie jessica
writable = iphone_project

如果你提交並推送這個修改,四個用戶將同時具有該項目的讀寫許可權。

Gitosis 也具有簡單的訪問控制功能。如果想讓 John 只有讀許可權,可以這樣做:

[group mobile]
members = scott josie jessica
writable = iphone_project

[group mobile_ro]
members = johnreadonly = iphone_project

現在 John 可以克隆和獲取更新,但 Gitosis 不會允許他向項目推送任何內容。像這樣的組可以隨意創建,多少不限,每個都可以包含若干不同的用戶和項目。甚至還可以指定某個組為成員之一(在組名前加上 @ 前綴),自動繼承該組的成員:

[group mobile_committers]
members = scott josie jessica

[group mobile]
members = @mobile_committers
writable = iphone_project

[group mobile_2]
members = @mobile_committers john
writable = another_iphone_project

如果遇到意外問題,試試看把 loglevel=DEBUG 加到 [gitosis] 的段落(譯註:把日誌設置為調試級別,記錄更詳細的運行信息。)。如果一不小心搞錯了配置,失去了推送許可權,也可以手工修改伺服器上的 /home/git/.gitosis.conf 文件 — Gitosis 實際是從該文件讀取信息的。它在得到推送數據時,會把新的 gitosis.conf 存到該路徑上。所以如果你手工編輯該文件的話,它會一直保持到下次向 gitosis-admin 推送新版本的配置內容為

⑵ 如何在mac系統下搭建git伺服器

第一步,下載gitblit


http://gitblit.com/

這里當然是選擇linux/osx的版本。下載下來是一個.tar.gz的壓縮文件,我下載時最新版本是gitblit-1.7.1.tar.gz


閱讀全文

與mac刪除git賬號和密碼相關的資料

熱點內容
c語言加法的編程格式是什麼樣的 瀏覽:195
用戶大數據怎麼計算 瀏覽:717
手機app軟體怎麼開發 瀏覽:785
記得app 瀏覽:854
網路教課優點是什麼 瀏覽:846
設置驗證被拉入微信群 瀏覽:966
bubblegum教程 瀏覽:474
win7如何修改用戶密碼 瀏覽:169
逆戰輔助銷售網站源碼 瀏覽:100
陝西回收貼片機如何編程 瀏覽:948
以前鮑魚網站里的小說怎麼沒了 瀏覽:267
matlab程序如何調試 瀏覽:915
ps工程文件怎麼發 瀏覽:95
word文件如何批量插入蓋章 瀏覽:548
jscheckbox 瀏覽:338
pics規則文件 瀏覽:644
如何從數據中找出問題和機會 瀏覽:668
寫作投稿在哪個網站好 瀏覽:895
絕代雙驕版本 瀏覽:380
手機app在哪裡找的對象靠譜嗎 瀏覽:919

友情鏈接