1. git拉取遠程代碼到本地
git拉取代碼到本地的方法是:
打開git命令窗口,輸入命令【git clone github倉庫地址】,然後回車即可拉取代碼到本地倉庫。
在實際項目開發過程中,往往是已經存在遠程項目了,我們定義的需求是只需要簡單的操作git,能夠上傳和下拉最新代碼。
Git(讀音為/gɪt/)是一個開源的分布式版本控制系統,可以有效、高速地處理從很小到非常大的項目版本管理。 也是Linus Torvalds為了幫助管理linux內核開發而開發的一個開放源碼的版本控制軟體。
Torvalds 開始著手開發 Git 是為了作為一種過渡方案來替代 BitKeeper。
Git的功能特性:
從一般開發者的角度來看,git有以下功能:
1、從伺服器上克隆完整的Git倉庫(包括代碼和版本信息)到單機上。
2、在自己的機器上根據不同的開發目的,創建分支,修改代碼。
3、在單機上自己創建的分支上提交代碼。
4、在單機上合並分支。
5、把伺服器上最新版的代碼fetch下來,然後跟自己的主分支合並。
6、生成補丁(patch),把補丁發送給主開發者。
7、看主開發者的反饋,如果主開發者發現兩個一般開發者之間有沖突(他們之間可以合作解決的沖突),就會要求他們先解決沖突,然後再由其中一個人提交。如果主開發者可以自己解決,或者沒有沖突,就通過。
8、一般開發者之間解決沖突的方法,開發者之間可以使用pull 命令解決沖突,解決完沖突之後再向主開發者提交補丁。
從主開發者的角度(假設主開發者不用開發代碼)看,git有以下功能:
1、查看郵件或者通過其它方式查看一般開發者的提交狀態。
2、打上補丁,解決沖突(可以自己解決,也可以要求開發者之間解決以後再重新提交,如果是開源項目,還要決定哪些補丁有用,哪些不用)。
3、向公共伺服器提交結果,然後通知所有開發人員。
2. gitlab 在內網伺服器,怎麼使用
ubuntu 13/pub/ruby/1/gitlabhq/gitlab-shell/',本地區域網安裝的話默認localhost就行/gitlabhq/gitlabhq.git gitlab# 進入 gitlab 目錄cd /home/git/gitlab# 切換到 gitlab 的 5.3 分支.sudo -u git -H git checkout 5-3-stablecd /home/git/gitlab# 復制 gitlab 的示例配置文件到指定目錄sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml# 如果用的不是本地伺服器,更改 localhost 為 gitlab 的伺服器域名sudo -u git -H gedit config/gitlab.yml# 確保當前用戶對 gitlab 的 log 和 tmp 文件有讀寫許可權.sudo chown -R git log/sudo chown -R git tmp/sudo chmod -R u+rwX log/sudo chmod -R u+rwX tmp/# 創建一個我不認識的目錄...汗!sudo -u git -H mkdir /home/git/gitlab-satellites# 再創建兩個我不認識的目錄...並且確保 當前用戶對他有讀寫許可權.sudo -u git -H mkdir tmp/pids/sudo -u git -H mkdir tmp/sockets/sudo chmod -R u+rwX tmp/pids/sudo chmod -R u+rwX tmp/sockets/# 創建公共的上傳備份目錄,並確保當前用戶對其有讀寫許可權.否則備份會失敗.sudo -u git -H mkdir public/uploadssudo chmod -R u+rwX public/uploads# 復制示例配置文件到制定目錄sudo -u git -H cp config/puma.rb.example config/puma.rb# 找到其中有一行 # workers 2,去掉前面的 # 並將 2 改為 3.sudo -u git -H gedit config/puma.rb# 配置 gitlab 的全局設置.sudo -u git -H git config --global user.name GitLabsudo -u git -H git config --global user.email gitlab@localhost# 復制示例Mysql配置文件到指定目錄sudo -u git cp config/database.yml.mysql config/database.yml# 修改裡面的 root 為 gitlab, 密碼為創建的 gitlab mysql 用戶密碼sudo gedit config/database.yml# 安裝一個我不認識的東西...我沒臉翻譯了...大哥你還是看原版教程吧cd /home/git/gitlabsudo gem install charlock_holmes --version '0.6.9.4'sudo -u git -H bundle install --deployment --without development test postgressudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=proction# 下載 gitlab 的 開始/停止 腳本,並且加入當前用戶的可執行許可權.sudo cp lib/support/init.d/gitlab /etc/init.d/gitlabsudo chmod +x /etc/init.d/gitlab# 添加 gitlab 的開機啟動sudo update-rc.d gitlab defaults 21# 檢查 gitlab 的狀態和環境配置是否正確.sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=proction# 啟動 gitlabsudo service gitlab start# 或者sudo /etc/init.d/gitlab restart# 再次檢查 gitlab 的狀態,如果全部綠色,說明 gitlab 配置成功.不知道為什麼,我要運行這個命令兩次才會全綠sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=proction七. 配置 Nginx# 軟體源安裝Nginxsudo apt-get install nginx# 復制 gitlab 的示例配置到指定目錄sudo cp lib/support/nginx/gitlab /etc/nginx/sites-available/gitlabsudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab# 修改配置文件.更改其中的 YOUR_SERVER_FQDN 為你的 gitlab 伺服器全稱域名或者本機IP地址,修改 listen 為 *:80sudo gedit /etc/nginx/sites-available/gitlab# 重啟 nginx 伺服器sudo service nginx restart# 打開瀏覽器輸入本機 IP,用下面的用戶密碼登錄既可[email protected]!fe
3. 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主頁,你的工程已經添加成功了~!
4. 如何設置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
5. 如何 連接 linux git伺服器
1、前期准備 伺服器上配置好的git git客戶端 1.1 在伺服器上安裝git (本機所使用的linux是ubuntu) 在伺服器輸入命令:sudo apt-get install git即可 然後創建名字為git的用戶組和用戶 1.2 下載客戶端 在瀏覽器地址欄輸入:https://git-for-windows.github.io/ 回車後 點擊Download進行下載 2、具體操作 2.1 在合適的位置創建一個目錄充當git遠程倉庫(本機位置為/usr/testgit),然後使用init命令初始化倉庫 在命令終端輸入: sudo git init –bare 2.2 將git init生成的目錄所屬者改為git 輸入命令:sudo chown -R git:git * 至此伺服器端的操作完成。 在客戶端合適位置使用git 客戶端從伺服器資源 2.3 首先打開git客戶端 點擊Git Bash Here 後出現 在git客戶端命名終端輸入: git clone git@xxxxxx:/rrrrr 其中xxxxxx是遠程伺服器的地址 rrrrr為git倉庫所在位置 如果配置正確你選中的目錄下會出現名字為testgit的文件夾 testgit文件夾下隨意創建若干個文件 2.3 在git客戶端上使用命令 git add 111.txt 222.txt 333.txt 或者使用git add .(將本文件夾下所有文件都add) 該命令的作用是告訴git把文件添加到git倉庫 2.4 然後使用git commit命令將文件提交到git倉庫 -m 後面的內容為本次提交文件的一些注釋內容 此時文件還沒有從本地倉庫上傳到遠程伺服器倉庫 2.5 使用push命令將本地倉庫中的內容提交到遠程倉庫 在git客戶端命令終端輸入:git push origin master 至此本地倉庫中的文件上傳已經上傳到遠程伺服器倉庫。 在其他文件夾下再次使用 git clone 命令 從遠程伺服器同步倉庫
6. git 連接著一個伺服器地址,現在想連接另一個git伺服器,如何操作
gti remote add 伺服器別稱 url,使用的時候用伺服器別名獲取。區別伺服器的是別名。比如origin就代表是一個,自定義的
7. 請給我介紹幾個git命令的意思
1.git status 看狀態
2.git add 添加一個文件到git index [file name]
3.git log 看你commit的日誌
4.git commit -a 提交當前repos的所有的改變
git commit -m 添加commit信息
5.git push origin HEAD:refs/for/master 不知道 應該是限制許可權吧==
6.git reset TO REVERT YOUR CHANGES to before the merge還原您更改合並前的
7.git clone:
這是較為簡單的一種初始化方式,當你已經有一個遠程的Git版本庫,只需要在本地克隆一份,例如'git clone git://github.com/someone/some_project.git some_project'命令就是將'git://github.com/someone/some_project.git'這個URL地址的遠程版 本庫完全克隆到本地some_project目錄下面 git init和git remote:這種方式稍微復雜一些,當你本地創建了一個工作目錄,你可以進入這個目錄,使用'git init'命令進行初始化,Git以後就會對該目錄下的文件進行版本控制,這時候如果你需要將它放到遠程伺服器上,可以在遠程伺服器上創建一個目錄,並把 可訪問的URL記錄下來,此時你就可以利用'git remote add'命令來增加一個遠程伺服器端,例如'git remote add origin git://github.com/someone/another_project.git'這條命令就會增加URL地址為'git: //github.com/someone/another_project.git',名稱為origin的遠程伺服器,以後提交代碼的時候只需要使用 origin別名即可 現在我們有了本地和遠程的版本庫,讓我們來試著用用Git的基本命令吧: git pull:從其他的版本庫(既可以是遠程的也可以是本地的)將代碼更新到本地,例如:'git pull origin master'就是將origin這個版本庫的代碼更新到本地的master主枝,該功能類似於SVN的update git add:是將當前更改或者新增的文件加入到Git的索引中,加入到Git的索引中就表示記入了版本歷史中,這也是提交之前所需要執行的一步,例如'git add app/model/user.rb'就會增加app/model/user.rb文件到Git的索引中 git rm:從當前的工作空間中和索引中刪除文件,例如'git rm app/model/user.rb' git commit:提交當前工作空間的修改內容,類似於SVN的commit命令,例如'git commit -m "story #3, add user model"',提交的時候必須用-m來輸入一條提交信息 git push:將本地commit的代碼更新到遠程版本庫中,例如'git push origin'就會將本地的代碼更新到名為orgin的遠程版本庫中 git log:查看歷史日誌 git revert:還原一個版本的修改,必須提供一個具體的Git版本號,例如'git revert ',Git的版本號都是生成的一個哈希值 上面的命令幾乎都是每個版本控制工具所公有的,下面就開始嘗試一下Git獨有的一些命令: git branch:對分支的增、刪、查等操作,例如'git branch new_branch'會從當前的工作版本創建一個叫做new_branch的新分支,'git branch -D new_branch'就會強制刪除叫做new_branch的分支,'git branch'就會列出本地所有的分支 git checkout:Git的checkout有兩個作用,其一是在不同的branch之間進行切換,例如'git checkout new_branch'就會切換到new_branch的分支上去;另一個功能是還原代碼的作用,例如'git checkout app/model/user.rb'就會將user.rb文件從上一個已提交的版本中更新回來,未提交的內容全部會回滾。
看得我眼都花了==, 樓主一定要追分啊0.0
8. 搭建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伺服器在工作,那麼在修復好主伺服器後需要將這一段時間的變更同步回主服如襪務器。
操作完成後備份庫自上一次同步後的更改都推送到了主庫。