當前位置:首頁 » 雲伺服器 » git伺服器搭建遠程倉庫

git伺服器搭建遠程倉庫

發布時間: 2022-09-22 03:21:24

1. 怎麼用git命令創建遠程倉庫分支

$ git clone https://github.com/wenziyelang/curl_.git mylibgit
1,從已有的分支創建新的分支(如從master分支),創建一個dev分支

git checkout -b dev
2,創建完可以查看一下,分支已經切換到dev
git branch
3,提交該分支到遠程倉庫

git push origin dev
4,測試從遠程獲取dev

git pull origin dev

或者:

如果用命令行,運行 git fetch,可以將遠程分支信息獲取到本地,再運行 git checkout -b local-branchname origin/remote_branchname 就可以將遠程分支映射到本地命名為local-branchname 的一分支
5,我覺得現在重要的就是設置git push,pull默認的提交獲取分支,這樣就很方便的使用git push 提交信息或git pull獲取信息

git branch --set-upstream-to=origin/dev

取消對master的跟蹤

git branch --unset-upstream master
6,現在隨便修改一下工程文件的內容,然後git commit ,git push,之後就可以直接提交到遠程的dev分支中,而不會是master

2. git怎麼在centos下設置遠程倉庫

遠程倉庫搭建
step1:安裝git
```yum -y install git```

step2:創建用戶git,用來運行git服務
useradd git
passwd git //修改git用戶的密碼

step3:創建登錄用戶證書
收集所有需要登錄的用戶的公鑰,就是他們自己的id_rsa.pub文件,把所有公鑰導入到/home/git/.ssh/authorized_keys文件里,一行一個

step4:初始化git倉庫
1.創建目錄/git,在/git目下再創建一個.git結尾的目錄,作為一倉庫,這里創建一個/git/test.git,並且進入/git目錄 2.初始化倉庫git init --bare test.git Git就會創建一個裸倉庫,裸倉庫沒有工作區,伺服器上的Git倉庫純粹是為了共享 所以不讓用戶直接登錄到伺服器上去改工作區,並且伺服器上的Git倉庫通常都以.git結尾 3.將倉庫的owner改為git chown -R git:git test.git 4.出於安全考慮,第二步創建的git用戶不允許登錄shell,這可以通過編輯/etc/passwd文件完成,找到git用戶的那一行將git:x:500:500::/home/git:/bin/bash改為git:x:500:500::/home/git:/usr/bin/git-shell .git-shell每次一登錄就自動退出.

step5:自此整個git遠程倉庫就搭建完成,就可以像使用github那樣使用搭建好的遠程倉庫與你的team功能開發了.
本地與搭建好的倉庫交互
git remote add origin [email protected]:/git/test.git 這里的ip是你主機的ip
git clone [email protected]:/git/test.git 將遠程倉庫克隆到本地的倉庫
git push origin master 推送到遠程倉庫

3. 如何使用git創建遠程倉庫

當然使用git之前先要下載git客戶端鏈接在這里:http://git-scm.com/download/

這里不用github for windows是因為我覺得比較偏門,不是太普適,我要是在Linux下就沒辦法了。

先描述github和git:

1.git是版本一個控制系統,blabla介紹什麼的最不喜歡了.....

就是說,我們使用git管理我們的代碼,那麼我們就需要把代碼加入到git倉庫中保存,git有一個本地倉庫的概念,就是可以在本地記錄變更,以便適應不能聯網的環境。

2.遠程倉庫是遠程主機上類似於現在的網盤一樣的東西,但是具有git的功能,可以在主機上保存我們的代碼庫。這里說的github就是遠程倉庫。

首先,我們使用遠程倉庫需要現在github注冊賬號,怎麼注冊不用多說了。

然後我們需要在本地建立本地倉庫,就是在你需要建立倉庫的目錄下執行這樣的命令:

git init

示例:

在用戶目錄下新建了一個learngit文件夾,在此文件夾下使用上述命令:

打開git bash

需要密碼驗證的時候輸入密鑰密碼就好。(當然有不用輸入的方法)

此時在github上查看倉庫就已經上傳完成了:

4. 如何使用git創建遠程倉庫

如果你遠端創建了庫了那麼 本地的工程就可以用clone命令克隆一個, 如果沒有 那麼需要手動執行git remote add 命令新加一個和遠端有關系的東西 這樣就可以用git push推送過去了

5. 如何使用git創建遠程倉庫

  1. 第一步我們要創建遠程倉庫讓別人連接。需要打開遠程連接。找到系統偏好設置。找到花紅圈的共享按鈕,點擊

  2. 然後看到有遠程連接選項,在允許訪問這,我們選擇所有用戶。然後保存。現在我們需要進行終端部分了。

  3. 點擊桌面右上角的放大鏡,搜索終端,找到後打開

  4. 首先創建一個空的倉庫,分別再終端中敲mkdir jj回車 再敲cd jj回車 再敲ls 回車,再敲git init回車。就可以創建完成一個空的倉庫了。如果用git --bare init --shared group來聲明就可以變為一個可以遠程推送的伺服器了。但下面的第5、6步就不需要了。我們只需要克隆下來使用即可。這 裡面還有點小問題,需要自己摸索咯。

  5. 我們再這個本地倉庫中創建一個txt格式的文件,文件中的內容為our first git repository,代碼添加如圖所示,成功後會顯示create mode 100644,

  6. 本地倉庫建成之後,在本地倉庫添加一個遠程倉庫,並將本地的master分支跟蹤到遠程分支。

    這兒輸入時要特別注意。origin 遠程倉庫名ssh://192.168.100.103/~/jj/.git這個ssh是你本地的ip地址,格式要和我這一樣,雙斜杠,冒號等、輸入密碼後,出現Everything up-to-date證明成功了。

  7. 另一台機器上驗證一下,打開終端,輸入git clone origin ssh://192.168.100.103/~/jj/.git即可。我的遠程倉庫是origin你們的是啥,自己更改。

    按回車後出現

    Cloning into jj...

    證明成功了。

6. 怎麼在gitlab上面創建遠程倉庫

GitLab是由Ruby語言開發的基於Linux的Git伺服器,是我見過的最強大的Git伺服器。發現它之後,立即決定將Git伺服器換成GitLab。 但安裝好GitLab之後面臨一個問題,如何將伺服器上的git項目直接導入到GitLab,之前的Git伺服器是由是git+apache搭建的(詳見在Linux上用Apache搭建Git伺服器)。 在網上發現了這篇文檔——Import bare repositories into your GitLab instance,並按之進行了操作。 1)設置存放代碼庫的主目錄 vi /etc/gitlab/gitlab.rb 比如這里設置為:git_data_dir "/gitlab/repos" 2)訪問剛搭建的GitLab站點,創建一個group,比如cnblogs。 這時會在 /gitlab/repos 下創建 /gitlab/repos/repositories/cnblogs 文件夾。 然後在/gitlab/repos/repositories/創建一個文件夾,比如cnblogs 3)將現有的所有git項目文件復制到這個文件夾 cp -r /data/git/* /gitlab/repos/repositories/cnblogs 4)修改一下復制過來的文件夾的所有者: chown -R git:git /gitlab/repos/repositories/cnblogs 5)運行GitLab導入命令 cd /var/opt/gitlab gitlab-rake gitlab:import:repos 等了一段時間之後,顯示done,卻一個項目也沒導入進來。

7. 求助:git伺服器搭建 windows

搭建Git伺服器需要准備一台運行Linux的機器,強烈推薦用Ubuntu或Debian,這樣,通過幾條簡單的apt命令就可以完成安裝。
假設你已經有sudo許可權的用戶賬號,下面,正式開始安裝。
第一步,安裝git:
$ sudo apt-get install git

第二步,創建一個git用戶,用來運行git服務:
$ sudo adser git

第三步,創建證書登錄:
收集所有需要登錄的用戶的公鑰,就是他們自己的id_rsa.pub文件,把所有公鑰導入到/home/git/.ssh/authorized_keys文件里,一行一個。
第四步,初始化Git倉庫:
先選定一個目錄作為Git倉庫,假定是/srv/sample.git,在/srv目錄下輸入命令:
$ sudo git init --bare sample.git

Git就會創建一個裸倉庫,裸倉庫沒有工作區,因為伺服器上的Git倉庫純粹是為了共享,所以不讓用戶直接登錄到伺服器上去改工作區,並且伺服器上的Git倉庫通常都以.git結尾。然後,把owner改為git:
$ sudo chown -R git:git sample.git

需要伺服器找我:展翼小T

第五步,禁用shell登錄:
出於安全考慮,第二步創建的git用戶不允許登錄shell,這可以通過編輯/etc/passwd文件完成。找到類似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bash

改為:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

這樣,git用戶可以正常通過ssh使用git,但無法登錄shell,因為我們為git用戶指定的git-shell每次一登錄就自動退出。
第六步,克隆遠程倉庫:
現在,可以通過git clone命令克隆遠程倉庫了,在各自的電腦上運行:
$ git clone git@server:/srv/sample.git
Cloning into 'sample'...
warning: You appear to have cloned an empty repository.

剩下的推送就簡單了。
管理公鑰
如果團隊很小,把每個人的公鑰收集起來放到伺服器的/home/git/.ssh/authorized_keys文件里就是可行的。如果團隊有幾百號人,就沒法這么玩了,這時,可以用Gitosis來管理公鑰。
這里我們不介紹怎麼玩Gitosis了,幾百號人的團隊基本都在500強了,相信找個高水平的Linux管理員問題不大。
管理許可權
有很多不但視源代碼如生命,而且視員工為竊賊的公司,會在版本控制系統里設置一套完善的許可權控制,每個人是否有讀寫許可權會精確到每個分支甚至每個目錄下。因為Git是為Linux源代碼託管而開發的,所以Git也繼承了開源社區的精神,不支持許可權控制。不過,因為Git支持鉤子(hook),所以,可以在伺服器端編寫一系列腳本來控制提交等操作,達到許可權控制的目的。Gitolite就是這個工具。
這里我們也不介紹Gitolite了,不要把有限的生命浪費到許可權斗爭中。

8. 怎麼在自己的伺服器上建立git倉庫

1.架設Git伺服器我們以Ubuntu為例。首先,在git伺服器上創建一個名為'git'的用戶,並為其創建一個.ssh目錄。並將其許可權設置為僅git用戶有讀寫許可權$sudoadsergit$sugit$cd$mkdir.ssh$chmod700.ssh接下來,把開發者的SSH公鑰添加到這個用戶的authorized_keys文件中。假設你通過電郵收到了幾個公鑰並存到了臨時文件里。重復一下,公鑰大致看起來是這個樣子:$cat/tmp/id_rsa.john.pubssh-/ww+/T17//5zytK6Ztg3RPKK+/nLF6JLtPofwFBlgc+AYYgPqdAv8JggJICUvax2T9va5gsg-keypair只要把它們逐個追加到authorized_keys文件尾部即可,同時將authorized_keys設置為僅git用戶有讀寫許可權。$cat/tmp/id_rsa.john.pub>>~/.ssh/authorized_keys$cat/tmp/id_rsa.josie.pub>>~/.ssh/authorized_keys$cat/tmp/id_rsa.jessica.pub>>~/.ssh/authorized_keys$chmod600~/.ssh/authorized_keys現在可以用--bare選項運行gitinit來建立一個裸倉庫,這會初始化一個不包含工作目錄的倉庫。$cd/opt/git$mkdirproject.git$cdproject.git$git--bareinit這時,Join,Josie或者Jessica就可以把它加為遠程倉庫,推送一個分支,從而把第一個版本的項目文件上傳到倉庫里了。值得注意的是,每次添加一個新項目都需要通過shell登入主機並創建一個裸倉庫目錄。我們不妨以gitserver作為git用戶及項目倉庫所在的主機名。如果在網路內部運行該主機,並在DNS中設定gitserver指向該主機,那麼以下這些命令都是可用的:#在John的電腦上$cdmyproject$gitinit$gitadd.$gitcommit-m'initialcommit'$gitremoteaddorigingit@gitserver:/opt/git/project.git$gitpushoriginmaster這樣,其他人的克隆和推送也一樣變得很簡單:$gitclonegit@gitserver:/opt/git/project.git$vimREADME$gitcommit-am'fixfortheREADMEfile'$gitpushoriginmaster用這個方法可以很快捷地為少數幾個開發者架設一個可讀寫的Git服務。作為一個額外的防範措施,你可以用Git自帶的git-shell工具限制git用戶的活動范圍。只要把它設為git用戶登入的shell,那麼該用戶就無法使用普通的bash或者csh什麼的shell程序。編輯/etc/passwd文件:$sudovim/etc/passwd在文件末尾,你應該能找到類似這樣的行:git:x:1000:1000::/home/git:/bin/sh把bin/sh改為/usr/bin/git-shell(或者用whichgit-shell查看它的實際安裝路徑)。該行修改後的樣子如下:git:x:1000:1000::/home/git:/usr/bin/git-shell現在git用戶只能用SSH連接來推送和獲取Git倉庫,而不能直接使用主機shell。嘗試普通SSH登錄的話,會看到下面這樣的拒絕信息:$sshgit@gitserverfatal:WhatdoyouthinkIam?Ashell?Connectiontogitserverclosed.這里提供的方法,組內所有成員對project都有讀寫許可權,也就是說每個分支都可以push代碼,如果需要更加細致的許可權控制,請使用Gitosis或者Gitolite。2.搭建Gitweb安裝gitweb之後就可以通過網站訪問我們的項目了。就像gitweb.conf#pathtogitprojects(.git)$projectroot="/opt/git";至此gitweb就可以使用了,現在可以通過config[core]repositoryformatversion=0filemode=truebare=true[hooks]mailinglist="[email protected],[email protected]"#收件人列表[email protected]#送件人地址emailprefix="[Projectcommit]"#郵件標題前綴showrev="gitshow-C%s;echo"#不只顯示有變化的文件,同時也顯示改變的內容為了使郵件顯示的更清楚,還要修改一下工程目錄當中的description文件,在description文件中,默認第一行是項目名稱,所以要在第一行填入該項目的名稱,這個在郵件中會有顯示。$vim/opt/git/project.git/descriptionProject_A

9. 如何在mac下遠程搭建git伺服器

首先要有 ssh遠程登陸的工具,比如secureCRT等

方案一 基於SSH直接搭建
Git支持的協議主要是四種:
本地: 需要文件共享系統,許可權不好控制
HTTP:速度慢
SSH:同時支持讀寫操作,不支持匿名的讀取(Git默認協議)
GIT:最快
從搭建的難易程度和特點綜合篩選,最合適的還是ssh,並且大部分伺服器上基本都有ssh服務,所以省去了不少麻煩。一個最基本的思路是給每一個人一個ssh帳號,這樣大家就可以通過用戶名和口令來訪問了,但是顯然這不是一個好的選擇,這個做法有些多餘,並且對於repo的許可權很難管理。
在使用Github的時候,會利用rsa.pub公鑰/私鑰的方式,這樣在服務端擁有用戶的公鑰(*.pub)之後就可以,跨過繁瑣的口令,直接認證提交了,而服務端也會根據不同的用戶身份,對其許可權有著更加靈活的管理。因此我們也採用這種方式。
服務端
為了使遠程庫訪問更加直觀,先在伺服器上創建一個名為git的賬戶,這樣以後clone的時候就如下面的格式了:

git clone git@server:some.git

創建新的用戶,創建repo等目錄

$sudo adser git
$su git
$cd ~
$mkdir repos

在HOME下的.ssh目錄,如果沒有則創建,創建一個authorized_keys文件,這個文件就是用來管理所有git用戶的公鑰的,也就是這裡面的用戶對於項目有著R+W的許可權。
客戶端
對於每一個客戶端,我們需要生成一對密鑰和公鑰,如果是Github用戶,那麼.ssh目錄下,一定有id_rsa.pub和id_rsa兩個文件,其中第一個是系統生成的公鑰,另一個是自己要保存好的密鑰。如果沒有的話,可以在終端執行:ssh-keygen來生成,完成後,將自己的公鑰提交給管理員,這就是一個注冊的行為。
完成
最後一步,管理員將團隊成員的公鑰添加到authorized_keys中,比如將同學susie加入:

$ cat susie.pub >> authorized_keys

至此,大家可以通過git@server:repos/some.git來訪問公共的版本庫了。
問題
安全問題,成員可以登錄git用戶的shell,細節許可權如分支等不好控制
管理麻煩,新建repo,或者增加成員比較麻煩,尤其是修改的時候
方案二 使用Gitolite服務
Gitolite 也是基於SSH協議構建的方便管理git repo的應用,可以通過其源碼安裝.
安裝
安裝按照官方給定的文檔就可以輕易的實現:

$ git clone git://github.com/sitaramc/gitolite
$ mkdir -p $HOME/bin
$ gitolite/install -to $HOME/bin
$ gitolite setup -pk YourName.pub

如果執行最後一條命令的時候,gitolite不識別,則可以通過下面兩種方式解決:
將gitolite添加到PATH裡面
通過$HOME/bin/gitolite setup -pk YourName.pub 執行
至此,gitolite在服務端,搭建完畢,會發現此時HOME目錄下增加了一個文件projects.list和一個目錄repositories,後者就是我們的版本倉庫了,每當新建repo的時候,就會在其中創建。
使用
是時候說一下gitolite的管理模式了,他會創建一個gitolite-admin的repo,管理員就是通過像這個repo提交配置文件而實現對git伺服器的控制的。
首先,將這個repo導入到我們的workspace:在此之前,需要配置本地的ssh,gitolite要求管理員的本地密鑰和其注冊公鑰的名字一致,比如我們安裝的時候指定 -pk後面為 admin.pub 則管理員本地需要由admin對應的私鑰。我們可以通過~/.ssh/config來進行配置(註:有些系統可以用conf,Mac OSX 下無效,只能用config).

host gitolite
user git
hostname yourhostname.com
port 22
identityfile ~/.ssh/admin

這樣,當我們訪問gitolite的時候就會自動根據配置文件執行,配置完成後可以根據下面的命令,將gitolite-admin轉移到本地。

git clone gitolite:gitolite-admin.git

克隆完成後,可以發現,gitolite-admin下面有兩個目錄,其中conf保存配置文件,我們可以通過編輯裡面的gitolite.conf文件,管理git伺服器,keydir目錄保存用戶的公鑰pub文件。
當我們講修改後的repo 提交的時候,gitolite就會自動的應用這些配置,管理過程就方便了很多。
配置規則
打開gitolite.conf文件可以看到其中的示例:
To add new users alice, bob, and carol, obtain their public keys and add them to 'keydir' as alice.pub, bob.pub, and carol.pub respectively.
To add a new repo 'foo' and give different levels of access to these users, edit the file 'conf/gitolite.conf' and add lines like this:

repo foo
RW+ = alice
RW = bob
R = carol

上面的配置文件就是新建了一個repo foo,並且添加了三位項目成員,每一個人的許可權不同。提交push後,管理便生效了。
可視化
我們可能會需要一個web界面來管理這些項目,我目前知道的有三種方式:
git源碼中自帶的組件,cgi腳本實現,使用gitolite服務
gitlab開源框架,基於ROR,新版本不再使用gitolite服務
FB開源PHP框架 phabricator,功能高端上檔次

10. 如何使用git創建遠程倉庫

  • 首先, 先到github網站注冊賬號。

  • 2

    然後創建一個項目, Create a new repository,如下圖所示:

  • 8

    輸入完title和key後選擇Add SSH key按鈕完成添加。

  • 9

    現在回到終端, 測試下是否能連接到github伺服器

    ssh -T [email protected]

    看到這樣的提示就說明設置好了

    bogon:ZXTabBarController jackey$ ssh -T [email protected] Hi zhouxihi! You've successfully authenticated, but GitHub does not provide shell access.

  • 10

    然後就可以將本地文件push到遠程倉庫了

    首先初始化本地倉庫

    git init

    添加文件

    git add .

    寫入緩存

    git commit -m 'first upload'

    添加遠程倉庫

    git remote add origin [email protected]:zhouxihi/ZXTabBarController.git

    推送文件到遠程倉庫

    git push -u origin master

    顯示100%. done就可以了

    bogon:ZXTabBarController jackey$ git push -u origin master Counting objects: 57, done. Delta compression using up to 4 threads. Compressing objects: 100% (51/51), done. Writing objects: 100% (57/57), 86.20 KiB | 0 bytes/s, done. Total 57 (delta 14), reused 0 (delta 0) remote: Resolving deltas: 100% (14/14), done. To [email protected]:zhouxihi/ZXTabBarController.git * [new branch] master -> master Branch master set up to track remote branch master from origin.

  • 11

    以後每次有修改本地文件就只要下面三個步驟就可以推送到伺服器了

    ->git add.

    ->git commit -m 'second upload'

    ->git push -u origin master

  • 12

    如果想從伺服器拉下來, 可以用指令

    git clone XXX.git

熱點內容
回憶源碼 發布:2024-05-04 10:28:20 瀏覽:233
mmm源碼 發布:2024-05-04 09:57:29 瀏覽:261
清除後台緩存的軟體 發布:2024-05-04 09:57:22 瀏覽:832
夢幻西遊有什麼腳本 發布:2024-05-04 09:33:43 瀏覽:717
I編程視頻 發布:2024-05-04 09:33:31 瀏覽:378
java客戶端程序 發布:2024-05-04 08:08:11 瀏覽:939
騰訊視頻賬號和密碼哪裡看 發布:2024-05-04 08:08:11 瀏覽:451
專網數據存儲安全問題分析 發布:2024-05-04 07:33:28 瀏覽:131
如何獲得列印機無線密碼 發布:2024-05-04 06:44:59 瀏覽:418
上古諸神錄哪裡改密碼 發布:2024-05-04 06:43:55 瀏覽:263