Ⅰ 如何用git把代碼上傳到伺服器
如你本機新建Git項目 地址:[email protected]:yourName/yourRepo.git,遠程代碼庫伺服器地址:192.168.10.1,遠程代碼伺服器賬戶名密碼:admin 密碼:123456
1.首先確保配置正確
a. 創建本地ssh-key
$ ssh-keygen -t rsa
在~/.ssh/下會生成 id_rsa.pub密鑰文件
b.上傳密鑰文件 id_rsa.pub到代碼伺服器
$cat /home/XXXX/.ssh/id_rsa.pub | ssh [email protected] "cat >> ~/.ssh/authorized_keys"
會提示輸如代碼伺服器密碼,輸入密碼:123456即可。
c.添加全局變數:
$ git config –-global user.name 『yourName』
$ git config –-global user.email 』[email protected]『
2.進入要上傳的git項目
$ git remote add origin [email protected]:yourName/yourRepo.git
之後進入.git,打開config,這里會多出一個remote 「origin」內容,這就是剛才添加的遠程地址,也可以直接修改config來配置遠程地址。
3.提交、上傳
a.接下來在本地倉庫里添加一些文件,比如README,
$ git add README
$ git commit -m "first commit"
b.上傳到代碼伺服器:
$ git push origin master
git push命令會將本地倉庫推送到遠程伺服器。
git pull命令則相反。
修改完代碼後,使用git status可以查看文件的差別,使用git add 添加要commit的文件,也可以用git add -i來智能添加文件。之後git commit提交本次修改,git push上傳到代碼伺服器。
Ⅱ 把git 伺服器上的代碼傳到 伺服器
1. 訪問伺服器:ssh 用戶名@ip
2. 然後輸入用戶名
3. 在輸入密碼
4. 切換用戶 su + 用戶名
5. 返回到主目錄 cd ~
6. git pull
Django 項目,愛分享伺服器上需要 �migrate
您確定在PYTHONPATH環境變數中安裝並可用嗎?你忘了激活虛擬環境嗎?
需要切換到虛擬環境 在執行 migrate
切換 虛擬環境:
cd Evn/
workon + 項目名稱
之後 重啟伺服器
Ⅲ 配置git連接遠程碼雲倉庫,並且碼雲倉庫代碼部署到伺服器
``ssh-keygen -t rsa -C 「您的郵箱地址」``
Your identification has been saved in /Users/you/.ssh/id_rsa.
# Your public key has been saved in /Users/you/.ssh/id_rsa.pub.
cd ~/.ssh
查看公鑰
cat id_rsa.pub
復制粘貼到碼雲上
到本地項目文件夾下,右鍵點擊空白處,選擇Git Bash Here,進入git窗口
一波操作後的頁面
whereis git
yum install -y git
git version
eg: cd /home/www/test
git init
git config --global user.name "您的用戶名稱"
git config --global user.email "您的郵箱地址"
git remote add origin 自己的倉庫地址
eg:git remote add origin https://gitee.com/***/**.git
ssh -v [email protected]
然後輸入 yes
我拉取的是master分支
git pull origin master
如果拉文件的時候報這個錯誤,那麼我們需要生成ssh公鑰
ssh-keygen -t rsa -C"[email protected]"
查看當前公鑰,並且將公鑰添加到碼雲後台的ssh公鑰中
git branch --set-upstream-to=origin/碼雲本地分支 伺服器本地分支
eg:git branch --set-upstream-to=origin/master master
git config --global credential.helper store
到此、配置完成
Ⅳ 怎麼用git部署
1. 下面我們以ubuntu server為例,介紹一下如何使用Git來管理項目代碼,並且部署代碼的web站點目錄。
2. 1. 准備工作:
1台擁有SSH許可權的伺服器 (LNMP,git,ssh安裝配置)
一台裝有git客戶端的PC (本文實際在windows下的msysgit操作)
3. LNMP,git,ssh安裝配置
# 安裝LNMP$ wget -c http://soft.vpser.net/lnmp/lnmp1.0-full.tar.gz && tar zxvf lnmp1.0-full.tar.gz && cd lnmp1.0-full && ./ubuntu.sh# 安裝Git ssh$ sudo apt-get install git git-core ssh
windows下安裝 msysgit
4. 2.在你的web伺服器上建立git裸倉庫、編寫hooks、導入用戶公鑰、設置目錄許可權
在伺服器上建立一個用戶,這里命名為git,修改git的密碼,並禁用shell登錄
$ sudo useradd git# 修改git的密碼$ passwd git# 禁用shell登錄$ sudo vi /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倉庫,建立git 裸倉庫,設置hook腳本(web目錄需要git用戶有許可權,否則git的hook腳本將沒有辦法執行操作)
$ cd /opt $ mkdir git$ cd git$ sudo git init --bare demosite.git# 文件夾許可權$ sudo chown -R git:git demosite.git$ cd /demosite.git/hooks$ sudo vi post-receive寫入以下內容#!/bin/shGIT_WORK_TREE=/home/wwwroot/www.demosite.com git checkout -f# 寫入許可權$ chmod +x post-receive# 建立web目錄,如果目錄不存在,git不會創建目錄的$ mkdir /home/wwwroot/www.demosite.com -p# web目錄的文件夾許可權$ sudo chown -R git:git /home/wwwroot/www.demosite.com
創建證書登錄
收集所有需要登錄的用戶的公鑰,就是他們自己的id_rsa.pub文件,把所有公鑰導入到/home/git/.ssh/authorized_keys文件里,一行一個。
客戶端用戶證書生成請參考下文。
5. 3.在git客戶端生成公鑰、導入伺服器、coding 、add、commit、push
生成公鑰,導入伺服器
$ ssh-keygen -t rsa -C "[email protected]"一路回車或者設置密碼windows下回提示在哪裡生成了密鑰windows8下提示在C:\Users\username\.ssh 下,linux的話會在~/.ssh下進入目錄,打開id_rsa.pub,復制裡面的key,添加到上文提到的web伺服器的/home/git/.ssh/authorized_keys里。
clone coding add commit push
$ git clone git@serverip:/opt/git/demosite.gitCloning into 'demosite'...warning: You appear to have cloned an empty repository.$ cat 'hello world!' > index.html$ git add index.html$ git commit -m'first commit'$ git remote add origin ssh://git@serverip:/opt/git/demosite.git$ git push origin master
這里使用公鑰來做許可權驗證,運行git里的hook的腳本許可權為git用戶的許可權,當然你也可以使用自己在server上的用戶來進行git操作,前面對於git用戶的操作和客戶端公鑰的生成則可以省略,在git上腳本的執行許可權則是你登錄用戶的許可權,相應的origin的設置應該為:
$ git remote add origin ssh://yourusername@serverip:/opt/git/demosite.git
這時候每次push將需要輸入密碼驗證。
忽略某些文件
你可以在你的頂層工作目錄中添加一個叫".gitignore"的文件,來告訴Git系統要忽略 掉哪些文件,下面是文件內容的示例:
使"git add ." 和"git commit -a" 變得實際可用。
# 以'#' 開始的行,被視為注釋.# 忽略掉所有文件名是 foo.txt 的文件.foo.txt# 忽略所有生成的 html 文件,*.html# foo.html是手工維護的,所以例外.!foo.html# 忽略所有.o 和 .a文件.*.[oa]#Eclipse.settings/*.buildpath.project
Ⅳ 如何搭建git伺服器 windows
GitLab是由Ruby語言開發的基於Linux的Git伺服器,是我見過的最強大的Git伺服器。發現它之後,立即決定將Git伺服器換成GitLab。但安裝好GitLab之後面臨一個問題,如何將伺服器上的git項目直接導入到GitLab,之前的Git伺服器是由是git+apache搭建的(詳見在Linux上用Apache搭建Git伺服器)。在網上發現了這篇文檔——,並按之進行了操作。1)設置存放代碼庫的主目錄vi/etc/gitlab/gitlab.rb比如這里設置為:git_data_dir"/gitlab/repos"2)訪問剛搭建的GitLab站點,創建一個group,比如cnblogs。這時會在/gitlab/repos下創建/gitlab/repos/repositories/cnblogs文件夾。然後在/gitlab/repos/repositories/創建一個文件夾,比如cnblogs3)將現有的所有git項目文件復制到這個文件夾cp-r/data/git/*/gitlab/repos/repositories/cnblogs4)修改一下復制過來的文件夾的所有者:chown-Rgit:git/gitlab/repos/repositories/cnblogs5)運行GitLab導入命令cd/var/opt/gitlabgitlab-rakegitlab:import:repos等了一段時間之後,顯示done,卻一個項目也沒導入進來。經研究發現,在導入時,GitLab只認文件夾名以.git結尾的項目。於是,將要導入的項目文件夾名稱加上.git後綴,再次進行導入。結果顯示導入成功,比如:Processingcnblogs/CNBlogsJob.git*CreatedCNBlogsJob(cnblogs/CNBlogsJob.git)Done!可以是GitLab站點上卻看不到已導入的項目。多次努力,也沒能解決這個問題。後來,實在沒法,改為手動導入,導入方法如下:1)在GitLab站點上創建與要導入的項目同名的項目。2)進入剛創建的項目文件夾cd/gitlab/repos/repositories/cnblogs/項目名稱.git3)刪除該文件下的所有文件rm-rf*4)將要導入的項目文件夾下的所有文件復制過來cp-r/data/git/CNBlogsJob/*/gitlab/repos/repositories/cnblogs/CNBlogsJob.git就這樣將項目一個一個地導入進來。5)導入完成後,修改一下導入的所有項目的文件所有者chown-Rgit:git/gitlab/repos/repositories/cnblogs如果不修改所有者,客戶端無法進行gitpush。就這樣手動地完成了現有Git項目的導入。備註:操作系統是CentOS6.2,GitLab版本是7.8.4。
Ⅵ 如何在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,功能高端上檔次
Ⅶ 如何通過git把本地的代碼上傳到伺服器
1、首先需要安裝Git,如果已經安裝,請跳過。由於Git是Linux開發的,所以大部分使用在Linux系統上,但肯定會有windows版的,我本身使用的是win10,下載安裝即可:https://git-for-windows.github.io/
2、安裝好git伺服器後。首先找到你項目的文件夾,比如項目名稱為myproject,進入到這個文件夾,右鍵打開模擬linux風格的命令窗口
接下來依次執行命令:
git init // 初始化版本庫git add . // 添加文件到版本庫(只是添加到緩存區),.代表添加文件夾下所有文件 git commit -m "first commit" // 把添加的文件提交到版本庫,並填寫提交備注12345
到目前為止,我們完成了代碼庫的初始化,但代碼是在本地,還沒有提交到遠程伺服器,所以關鍵的來了,要提交到就遠程代碼伺服器,進行以下兩步:
git remote add origin 你的遠程庫地址 // 把本地庫與遠程庫關聯git push -u origin master // 第一次推送時git push origin master // 第一次推送後,直接使用該命令即可推送修改12345
把本地庫的內容推送到遠程。使用 git push命令,實際上是把當前分支master推送到遠程。執行此命令後會要求輸入用戶名、密碼,驗證通過後即開始上傳。
說明:用戶名密碼需要通過命令 ssh-keygen -t rsa -C 「[email protected]」進行創建,並且要把得到的秘鑰(公鑰)文件放到git伺服器上,這樣才有許可權進行代碼推送
到此就成功的把本地的代碼放到了遠程伺服器上,這樣就能讓項目組成員進行寫作開發了。
Ⅷ 如何搭建linux git伺服器
首先我們分別在Git伺服器和客戶機中安裝Git服務程序(剛剛實驗安裝過就不用安裝了):
[root@linuxprobe ~]# yum install git
Loaded plugins: langpacks, proct-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Package git-1.8.3.1-4.el7.x86_64 already installed and latest version
Nothing to do
然後創建Git版本倉庫,一般規范的方式要以.git為後綴:
[root@linuxprobe ~]# mkdir linuxprobe.git
修改Git版本倉庫的所有者與所有組:
[root@linuxprobe ~]# chown -Rf git:git linuxprobe.git/
初始化Git版本倉庫:
[root@linuxprobe ~]# cd linuxprobe.git/
[root@linuxprobe linuxprobe.git]# git --bare init
Initialized empty Git repository in /root/linuxprobe.git/
其實此時你的Git伺服器就已經部署好了,但用戶還不能向你推送數據,也不能克隆你的Git版本倉庫,因為我們要在伺服器上開放至少一種支持Git的協議,比如HTTP/HTTPS/SSH等,現在用的最多的就是HTTPS和SSH,我們切換至Git客戶機來生成SSH密鑰:
[root@linuxprobe ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
65:4a:53:0d:4f:ee:49:4f:94:24:82:16:7a:dd:1f:28 [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
| .o+oo.o. |
| .oo *.+. |
| ..+ E * o |
| o = + = . |
| S o o |
| |
| |
| |
| |
+-----------------+
將客戶機的公鑰傳遞給Git伺服器:
[root@linuxprobe ~]# ssh--id 192.168.10.10
[email protected]'s password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh '192.168.10.10'"
and check to make sure that only the key(s) you wanted were added.
此時就已經可以從Git伺服器中克隆版本倉庫了(此時目錄內沒有文件是正常的):
[root@linuxprobe ~]# git clone [email protected]:/root/linuxprobe.git
Cloning into 'linuxprobe'...
warning: You appear to have cloned an empty repository.
[root@linuxprobe ~]# cd linuxprobe
[root@linuxprobe linuxprobe]#
初始化下Git工作環境:
[root@linuxprobe ~]# git config --global user.name "Liu Chuan"
[root@linuxprobe ~]# git config --global user.email "[email protected]"
[root@linuxprobe ~]# git config --global core.editor vim
向Git版本倉庫中提交一個新文件:
[root@linuxprobe linuxprobe]# echo "I successfully cloned the Git repository" > readme.txt
[root@linuxprobe linuxprobe]# git add readme.txt
[root@linuxprobe linuxprobe]# git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached ..." to unstage)
#
# new file: readme.txt
#
[root@linuxprobe linuxprobe]# git commit -m "Clone the Git repository"
[master (root-commit) c3961c9] Clone the Git repository
Committer: root
1 file changed, 1 insertion(+)
create mode 100644 readme.txt
[root@linuxprobe linuxprobe]# git status
# On branch master
nothing to commit, working directory clean
但是這次的操作還是只將文件提交到了本地的Git版本倉庫,並沒有推送到遠程Git伺服器,所以我們來定義下遠程的Git伺服器吧:
[root@linuxprobe linuxprobe]# git remote add server [email protected]:/root/linuxprobe.git
將文件提交到遠程Git伺服器吧:
[root@linuxprobe linuxprobe]# git push -u server master
Counting objects: 3, done.
Writing objects: 100% (3/3), 261 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To [email protected]:/root/linuxprobe.git
* [new branch] master -> master
Branch master set up to track remote branch master from server.
為了驗證真的是推送到了遠程的Git服務,你可以換個目錄再克隆一份版本倉庫(雖然在工作中毫無意義):
[root@linuxprobe linuxprobe]# cd ../Desktop
[root@linuxprobe Desktop]# git clone [email protected]:/root/linuxprobe.git
Cloning into 'linuxprobe'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.
[root@linuxprobe Desktop]# cd linuxprobe/
[root@linuxprobe linuxprobe]# cat readme.txt
I successfully cloned the Git repository
這篇是詳細介紹Git的,中間有一部分是怎麼去搭建,你可以看下
Ⅸ 在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下來就可以了。