git配置伺服器地址
① 搭建Git伺服器及備份伺服器
OS:CentOS 7.2
Git:1.8.3.1
備份模式:
以下步驟以雙機備份為例,單機備份同理,只是在鏡像git項目的時候把git url換成單機中的git項目目錄即可。
首先,查看系統軟體庫中是否有git和git的版本:
CentOS 7.2環境下的輸出如下:
CentOS 7.x版本的倉庫中已經附帶了1.8.3.1版本的git,可以直接安裝。
CentOS 6.x中的git是1.7.x版本,自帶庫中git版本低的linux發行版可以添加git1.8.3.1的源來安裝git,但這個操作要求本機能訪問互聯網
其他版本的git理論上也可以,請自行測試
結果最後顯示「安裝完成」或「Complete」表示安裝成功。可以直接使用git命令測試一下:
輸出如下表示git安裝成功並可用。
創建一個git用戶,用來提供給外部用戶以git url的方式訪問git庫。
在用戶目錄或其他對外目錄中創建 /git/repos 目錄,用來存放git庫。
注意: 盡量使用git用戶來創建該目錄,方便以後git操作該目錄,如果是使用其他用戶創建的,記得使用以下命令將該目錄的owner改為git:
為了方便訪問,可以在根目錄下創建一個軟鏈連接到該目錄:
這樣設置後,假如以後有一個庫叫 test.git ,那麼就可以通過以下url來訪問git庫了:
創建一個測試庫用來測試備份及連通性。
同主GIT伺服器的《安裝git》章節。
同主GIT伺服器的《創建git庫目錄》章節。
目錄結構盡量與主git伺服器上的結構一致,如果不一致,使用軟鏈的形式將git url配置為與主git伺服器一致,這樣保證在切換伺服器時,客戶端不用做修改操作。
以上個步驟中創建的 test.git 為例:
這樣,主git伺服器中的 test.git 就鏡像到備份機中了。
如果主伺服器的git項目發生了變更,可以將變更同步到備份機。
將以上同步命令寫成腳本,添加一個定時任務來定時同步即可。
(待補充)
備份同步時每次都需要輸入主git伺服器的密碼,比較麻煩,也不利於定時同步的腳本操作,可以使用ssh免密登錄的方式,在主伺服器上配置備份伺服器的公鑰。
一路Enter(回車鍵),完成後會列印出密鑰的生成位置,通常在用戶主目錄的 .ssh 目錄中。默認情況下會生成以下兩個文件:
一定要注意上述命令中的第三步,許可權要設置對,否則認證不過去不能免密登錄。
如果在實際運行中,主git伺服器掛了一段時間,在這段時間里一直是備份git伺服器在工作,那麼在修復好主伺服器後需要將這一段時間的變更同步回主伺服器。
操作完成後備份庫自上一次同步後的更改都推送到了主庫。
② 區域網內創建git伺服器的簡單方法
當資源有限,但是項目同時需要幾個人協同開發,我們就需要配置一個簡單的區域網內的git伺服器,方便協同開發。
首先我們新建遠端的git目錄,目錄名和本地倉庫名一致,並且在目錄下運行:
git init --bare
一個空的git倉庫就建立好了。然後我們需要把本地的倉庫和遠端的關聯起來。具體做法是,在本地git倉庫的目錄下執行:
git remote add origin ssh://用戶名@ip/倉庫路徑
比如:git remote add origin ssh://[email protected]/home/android/projects/gitserver/demoproject/。完成後,本地的提交,就可以push到遠端啦。比如:
git push origin master
就可以把本地的master推送到遠端。協同開發的同事可以通過如下命令獲取遠端的倉庫
git clone ssh://[email protected]/home/android/projects/gitserver/demoproject/
是不是很簡單呢
ps:實際使用過程中發現了一個問題,即本機的ip地址不是靜態的。如何解決這個問題呢?可以在每次ip改變以後,重置倉庫的origin url:
git remote set-url origin {url}
③ 使用Gitolite搭建Git伺服器
Git服務的管理工具,主要有如下幾種。
Gitolite 使用perl語言編寫,維護和更新比較積極,下面測試使用Gitolite搭建Git伺服器。
一般新建用戶 ~/.ssh/ 目錄是不存在的。
生成路徑會在ssh-kengen執行後給出,也可修改。windows下生成路徑默認位於 C:/user/用戶名/.ssh 下。
此時, gitolite 會初始化兩個倉庫,同時創建 authorized_keys 文件
管理庫中有兩個目錄, conf/ 和 keydir/ 。
倉庫的創建通過編輯 gitolite-admin/conf/gitolite.conf 即可,然後將配置後的文件上傳伺服器。
若本地已有倉庫repo2,將其添加到伺服器
gitolite可以通過用戶組的方式進行管理
如上提示,需要輸入密碼。
需要安裝 openssh ,並將 gitolite 用戶添加在 sshusers 組中,有的伺服器可能是 ssh 組。
計算機領域的Cookbook指的是實用經典案例的意思,是對一些普遍性問題的解決方案的總結和整理。
④ 如何搭建git本地伺服器 windows
安裝msysgit
安裝步驟此處略去。
END
安裝CopSSH
安裝步驟此處略去。
END
修改配置
修改CopSSH配置文件C:\Program Files\ICW\etc\sshd_config,確保如下行為非注釋行,且設置為「no」:
END
生成用戶帳號
1
在伺服器上生成Windows用戶,取消用戶下次登錄時須更改密碼,設置密碼永不過期:
2
將該用戶隸屬於GitUser組(如尚未生成改組,則先生成改組):
END
激活用戶
1
在Windows啟動程序組中,運行如下程序(C:\Program Files\ICW\bin\ copsshcp.exe):
2
進入COPSSH Control Panel應用對話框,正常情況下服務應該為正在運行(圖標為綠色,如為紅色,則可嘗試點選該按鈕,啟動該服務):
3
選擇Users頁面:
4
點選Add按鈕,出現如下導航對話框:
5
選擇Forward按鈕,出現如下頁面,選擇欲激活的用戶對應的域名及用戶名:
6
選擇Forward按鈕,進入如下頁面,選擇Linux shell and Sftp,所有選項選中:
7
選擇Forward按鈕,進入確認頁面,選擇Apply:
8
回到如下頁面,選擇Apply後,關閉。
END
公鑰文件上傳
1
從用戶處取得對應帳戶的公鑰文件authorized_keys,復制到C:\Program Files\ICW\home\ricky\.ssh目錄下(\ricky\是對應的用戶名);
2
Windows啟動程序組中運行Start a Unix BASH Shell(或Windows運行中運行命令:"C:\Program Files\ICW\bin\bash.exe" --login -i):
3
運行如下unix命令行,如運行未出錯,則完畢。
END
生成Git庫容器目錄
1
在伺服器硬碟上生成一個目錄,用來容納Git庫,比如生成E:\ GITTestRepo\目錄;
2
滑鼠右鍵點擊該目錄,選擇共享和安全…;
3
在彈出的該目錄屬性對話框的安全頁中加入用戶對應的組GitUser;
4
確認該用戶組許可權設置了允許修改、讀取和運行、列入文件夾目錄、讀取、寫入,選擇確定後完畢。
確認防火牆開放了22埠
確認伺服器的防火牆沒有禁止22埠的TCP/IP通信。
修改用戶登錄運行腳本
1
修改C:\Program Files\ICW\home\ricky\.bashrc文件(\ricky\是對應的用戶名),在文件最後加入如下行:
⑤ 如何在mac系統下搭建git伺服器
第一步,下載gitblit
http://gitblit.com/
這里當然是選擇linux/osx的版本。下載下來是一個.tar.gz的壓縮文件,我下載時最新版本是gitblit-1.7.1.tar.gz
⑥ ios xcode怎麼修改git伺服器地址
幾乎所有iOS程序員都上過GitHub尋找開源類庫,的確,GitHub上有大量優秀的開源類庫供大家學習。但是如何在Xcode中上傳代碼至GitHub呢?
首先我們新建一個工程,記得要勾選Create git repository on:
這說明使用Source Control,會默認在工程中創建git repository。然後工程新建完成後,會在右側邊欄看到這些信息,說明已經啟用Source Control
如果沒有使用Source Control,則是這樣的:
現在我們已經在工程中啟用了Source Control,這樣就可以使用git來管理工程版本了
但是如果我們想對一個未啟用git的工程加入git的功能怎麼做呢?我們可以使用命令行來開啟此功能,新建一個工程,不勾選Create git repository on,此時我們沒有開啟Source Control,然後我們手動創建git管理,如下圖所示:
YiBantekiiMac-3:UseGit YiBan$ cd /Users/YiBan/Documents/iOS_Dev/ManualGitDemo
YiBantekiiMac-3:ManualGitDemo YiBan$ git init
Initialized empty Git repository in /Users/YiBan/Documents/iOS_Dev/ManualGitDemo/.git/
使用
git init
來初始化一個空的git倉庫,現在使用ls-la命令查看目錄下的所有文件(包含隱藏文件)
total 16
drwxr-xr-x 7 YiBan staff 238 5 12 16:10 .
drwxr-xr-x 52 YiBan staff 1768 5 12 16:06 ..
-rw-r--r--@ 1 YiBan staff 6148 5 12 16:10 .DS_Store
drwxr-xr-x 9 YiBan staff 306 5 12 16:06 .git
drwxr-xr-x 12 YiBan staff 408 5 12 16:06 ManualGitDemo
drwxr-xr-x 5 YiBan staff 170 5 12 16:06 ManualGitDemo.xcodeproj
drwxr-xr-x 5 YiBan staff 170 5 12 16:06 ManualGitDemoTests
此時我們看到除了三個文件之外還有兩個隱藏文件,.DS_Store和.git,.DS_Store是由OS X生成的文件,包含了文件夾中的位置屬性,.git則是啟用了Source Control自動生成的目錄,然後使用git status查看當前狀態:
YiBantekiiMac-3:ManualGitDemo YiBan$ git status
On branch master
Initial commit
Untracked files:
(use "git add <file>..." to include in what will be committed)
.DS_Store
ManualGitDemo.xcodeproj/
ManualGitDemo/
ManualGitDemoTests/
nothing added to commit but untracked files present (use "git add" to track)
說明初始化成功了,顯示出了未被追蹤的文件。不過我們並不希望把.DS_Store也加入的git中,因為那文件對我們沒有任何用處,我們可以忽略它,具體做法是:新建一個文件,命名為.gitignore,然後使用文本編輯器輸入以下信息:
# Xcode�6�5
.DS_Store�6�5
*/build/*
�6�5*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
profile
*.moved-aside
DerivedData
.idea/
*.hmap
保存至工程文件夾中,這樣我們目錄中就多出一個.gitignore文件了,這時我們再用git status命令查看當前狀態:
YiBantekiiMac-3:ManualGitDemo YiBan$ git status
On branch master
Initial commit
Untracked files:
(use "git add <file>..." to include in what will be committed)
.gitignore
ManualGitDemo.xcodeproj/
ManualGitDemo/
ManualGitDemoTests/
nothing added to commit but untracked files present (use "git add" to track)
這里看到已經沒有.DS_Store了,說明.gitignore已經把.DS_Store忽略了。現在可以提交了,使用
git add .
此命令先將文件添加至暫存區域,但還沒有提交,查看下狀態:
YiBantekiiMac-3:ManualGitDemo YiBan$ git status
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: .gitignore
new file: ManualGitDemo.xcodeproj/project.pbxproj
new file: ManualGitDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file: ManualGitDemo/AppDelegate.h
new file: ManualGitDemo/AppDelegate.m
new file: ManualGitDemo/Base.lproj/Main.storyboard
new file: ManualGitDemo/Images.xcassets/AppIcon.appiconset/Contents.json
new file: ManualGitDemo/Images.xcassets/LaunchImage.launchimage/Contents.json
new file: ManualGitDemo/ManualGitDemo-Info.plist
new file: ManualGitDemo/ManualGitDemo-Prefix.pch
new file: ManualGitDemo/ViewController.h
new file: ManualGitDemo/ViewController.m
new file: ManualGitDemo/en.lproj/InfoPlist.strings
new file: ManualGitDemo/main.m
new file: ManualGitDemoTests/ManualGitDemoTests-Info.plist
new file: ManualGitDemoTests/ManualGitDemoTests.m
new file: ManualGitDemoTests/en.lproj/InfoPlist.strings
現在進行提交,使用git commit -m "Initail"命令,引號內的內容是提交的注釋,隨便寫什麼都可以:
YiBantekiiMac-3:ManualGitDemo YiBan$ git commit -m "Initial"
[master (root-commit) 83bbefc] Initial
17 files changed, 803 insertions(+)
create mode 100644 .gitignore
create mode 100644 ManualGitDemo.xcodeproj/project.pbxproj
create mode 100644 ManualGitDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata
create mode 100644 ManualGitDemo/AppDelegate.h
create mode 100644 ManualGitDemo/AppDelegate.m
create mode 100644 ManualGitDemo/Base.lproj/Main.storyboard
create mode 100644 ManualGitDemo/Images.xcassets/AppIcon.appiconset/Contents.json
create mode 100644 ManualGitDemo/Images.xcassets/LaunchImage.launchimage/Contents.json
create mode 100644 ManualGitDemo/ManualGitDemo-Info.plist
create mode 100644 ManualGitDemo/ManualGitDemo-Prefix.pch
create mode 100644 ManualGitDemo/ViewController.h
create mode 100644 ManualGitDemo/ViewController.m
create mode 100644 ManualGitDemo/en.lproj/InfoPlist.strings
create mode 100644 ManualGitDemo/main.m
create mode 100644 ManualGitDemoTests/ManualGitDemoTests-Info.plist
create mode 100644 ManualGitDemoTests/ManualGitDemoTests.m
create mode 100644 ManualGitDemoTests/en.lproj/InfoPlist.strings
再查看下狀態:
YiBantekiiMac-3:ManualGitDemo YiBan$ git status
On branch master
nothing to commit, working directory clean
好了,當前工作區是干凈的,代碼都已經提交完畢了。我們可以用Xcode提交代碼,也可以用命令來提交,但是用命令行的話可以做的事情更多一些。使用Xcode可以查看提交的歷史紀錄,Source Control->History:
首先必須有GitHub的帳號,沒有的話去注冊一個,並且還要創建SSH,GitHub使用了公私密鑰,確保與你的電腦通訊過程是安全的。
SSH創建過程是這樣的:
1. 在命令行輸入cd ~/.ssh,然後ls,看看此文件夾下有哪些文件,如果有id_rsa.pub或者id_dsa.pub(名字可能會不同),說明你已經有SSH keys了,你可以將它添加到你的賬戶中
2. 如果沒有的話,你講得到"No such file or directory"這個錯誤信息,此時你可以通過命令生成出來:
ssh-keygen -t rsa -C "YOUR EMAIL"
在那裡填寫你的email地址,之後會被要求填寫密碼,此時的SSH keys就生成好了,有了SSH Keys後將其添加至你的GitHub賬戶中就可以了,在賬戶設置中找到SSH keys這一項,然後填寫title和key,現在,你的SSH Key就和GitHub賬戶綁定了
前往個人主頁,新建一個repository(網頁右上方),會要輸入一些信息:
輸入Repository name和描述,然後選創建,會看到repository的鏈接:
把鏈接賦值下來,前往Xcode中,Source Control->第一項->Configure...,之後選Remotes:
Add Remote中,輸入Name(你工程的名字)和Address(之前的鏈接地址),然後Source Control->Push,選擇剛剛新建的鏈接,Push~
現在刷新下GitHub主頁,你的工程已經添加成功了~!
⑦ 在Linux下搭建Git伺服器
眾所周知,版本系統在開發環境中是必不可少的,但是我們可以把代碼免費的託管到GitHub上,如果我們不原意公開項目的源代碼,公司又不想付費使用,那麼我們可以自己搭建一台Git伺服器,可以用Gitosis來管理公鑰,還是比較方便的。
搭建環境:
伺服器 CentOS6.6 + git(version 1.8.3.1)
客戶端 Windows10 + git(version 2.11.1.windows.1)
1. 安裝Git相關軟體
Linux是伺服器端系統,Windows作為客戶端系統,分別安裝Git
安裝客戶端:
下載 Git for Windows,地址:https://git-for-windows.github.io/
安裝完之後,可以使用Git Bash作為命令行客戶端。
安裝Gitosis
出現下面的信息表示安裝成功了
2. 伺服器端創建git用戶來管理Git服務
3. 配置公鑰
在Windows上配置管理者,git伺服器需要一些管理者,通過上傳開發者機器的公鑰到伺服器,添加成為git伺服器的管理者,打開git命令行
4. 配置gitosis
使用git用戶並初始化gitosis
在Windows上機器上clone gitosis-admin到管理者主機
gitosis.conf: git伺服器配置文件
keydir: 存放客戶端公鑰
配置 gitosis.conf 文件
在Windows管理者機器上創建本地test倉庫,並上傳到git服務端
提交到遠程伺服器
服務端會自動創建test倉庫
5.添加其他git用戶開發者
由於公司開發團隊人數不斷增多,手動添加開發者私鑰到/home/git/.ssh/authorized_keys比較麻煩,通過上面的Windows機器的管理者統一收集其他開發者的私鑰id_rsa.pub文件,然後傳到伺服器上,配置好後,用戶即獲得項目許可權,可以從遠程倉庫拉取和推送項目,達到共同開發項目。
推送完成後,新加進來的開發者就可以進行項目的開發了,後續增加人員可以這樣添加進來,開發者直接把倉庫clone下來就可以了。
⑧ 如何設置git伺服器遠程連接地址
git remote add
usage: git remote add [<options>] <name> <url>
-f, --fetch fetch the remote branches
--tags import all tags and associated objects when fetching
or do not fetch any tag at all (--no-tags)
-t, --track <branch> branch(es) to track
-m, --master <branch>
master branch
--mirror[=<push|fetch>]
set up remote as a mirror to push to or fetch from