怎麼git伺服器上最新的更新
① ubntu 下git 怎麼拉取伺服器的最新代碼
面去,要得時候在pull到自己電腦上。
你的文件一共可以放在三個地方,一:你的本地庫,二:你的當前修改緩存,三:公共伺服器的遠程庫。在使用git伺服器時,需要先在自己電腦上建立一個本地庫,用來存放和克隆遠程庫的內容,當然克隆前應該先初始化一下。然後當你對你當前本地庫里的文件進行完更改之後,它只是停留在本地緩存,你需要提交命令來將更改保存到本地庫,在這完成之後,你需要將你的修改完的新版本的庫push到遠程伺服器的庫中。這樣當別人在他的電腦上更新遠程庫後,就可以看到你修改的內容,當然還可以看到修改之前的版本。
2.實驗室伺服器說明:
實驗室git伺服器ip地址為IP
實驗室git伺服器登陸用戶選擇bupt-server-1,一般修改在這個用戶
② 如何將代碼上傳到git伺服器上
1、本地公鑰的獲取,
cd ~/.ssh
ls
使用指令ssh-keygen,生產公鑰,第一個提示時輸入文件(默認是id_rsa),第二個提示時輸入的是密鑰,
公鑰放置在id_rsa.pub文件中。
2、按照code的提示,進行代碼上傳。
2.1 建立一個git文件件,比如git_csdn ,
2.2 git init,建倉操作,
2.3 可以新建一個readme.md,touch README.md
2.4git add.添加所有文件,git add file,添加file,比如git add README
2.5git commit -m "first commit"
2.6git remote add origin git @ url 地址
2.7git push -u origin master
3、git clone 地址
4、git remote不帶參數,列出已經存在的遠程分支
$ git remote
origin
5、配置:
$ git config --global user.name "John Doe"
$ git config --global [email protected]
出現的問題:Updates were rejected because the tip of your current branch is behind
有如下幾種解決方法:
1.使用強制push的方法:
$ git push -u origin master -f
這樣會使遠程修改丟失,一般是不可取的,尤其是多人協作開發的時候。
2.push前先將遠程repository修改pull下來
$ git pull origin master
$ git push -u origin master
3.若不想merge遠程和本地修改,可以先創建新的分支:
$ git branch [name]
然後push
$ git push -u origin [name]
分支管理:
1、創建分支: git branch new_branch
2、查看分支:git branch
3、刪除分支:git branch -d new_branch
4、切換分支:git checkout new_branch
5、創建分支並切換分支: git checkout -b new_branch即可在本地新建分支,並使用該分支track遠程分支
6、提交並推送分支:
git add .
git commit -m "xxx"
git push -u origin new_branch
7、刪除遠程分支:git push origin --delete new_branch
8、合並分支: git merge new_branch
9、將本地更新上傳到遠程分支上:
例如本地新建或是更新了內容newfile.c文件,
首先git add newfile.c,
然後git commit -m "add new file",
緊接著git push 本地分支名 遠程分支名即可將本地分支更新到遠程分支。
10.獲取遠程分支
git fetch 從遠程獲取其他用戶push上來的新分支
git remote -v 即可查看遠程所有的版本信息
③ 雲伺服器使用git更新部分代碼,需要用到遠程倉庫嗎
在伺服器上創建一個git倉庫 git init
在本地點卯克隆遠程git倉庫到本地 git clone
本地倉庫裡面寫代碼,添加、提交到本地倉庫 git add ; git commit
推送到遠程代碼倉庫 git push
④ git的倉庫和web站點不在一台伺服器上,怎麼自動更新
1. 架設Git伺服器 我們以Ubuntu為例。首先,在git伺服器上創建一個名為 'git' 的用戶,並為其創建一個.ssh 目錄。並將其許可權設置為僅git用戶有讀寫許可權 $ sudo adser git $ su git $ cd $ mkdir .ssh $ chmod 700 .ssh 接下來,把開發者的 SSH 公鑰添加到這個用戶的 authorized_keys 文件中。假設你通過電郵收到了幾個公鑰並存到了臨時文件里。重復一下,公鑰大致看起來是這個樣子: $ cat /tmp/id_rsa.john.pub ssh-rsa /ww+ouN4gSLKssMxXnBOvf9LGt4L ojG6rs6hPB09j9R/T17//5zytK6Ztg3RPKK+4k Ez /nLF6JLtPofwFBlgc+myiv Pq dAv8JggJICUvax2T9va5 gsg-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 $ chmod 600 ~/.ssh/authorized_keys 現在可以用 --bare 選項運行 git init 來建立一個裸倉庫,這會初始化一個不包含工作目錄的倉庫。 $ cd /opt/git $ mkdir project.git $ cd project.git $ git --bare init 這時,Join,Josie 或者 Jessica 就可以把它加為遠程倉庫,推送一個分支,從而把第一個版本的項目文件上傳到倉庫里了。值得注意的是,每次添加一個新項目都需要通過 shell 登入主機並創建一個裸倉庫目錄。我們不妨以 gitserver 作為 git 用戶及項目倉庫所在的主機名。如果在中國絡內部運行該主機,並在 DNS 中設定 gitserver 指向該主機,那麼以下這些命令都是可用的: # 在 John 的電腦上 $ cd myproject $ git init $ git add . $ git commit -m 'initial commit' $ git remote add origin git@gitserver:/opt/git/project.git $ git push origin master 這樣,其他人的克隆和推送也一樣變得很簡單: $ git clone git@gitserver:/opt/git/project.git $ vim README $ git commit -am 'fix for the README file' $ git push origin master 用這個方法可以很快捷地為少數幾個開發者架設一個可讀寫的 Git 服務。 作為一個額外的防範措施,你可以用 Git 自帶的 git-shell 工具限制 git 用戶的活動范圍。只要把它設為 git 用戶登入的 shell,那麼該用戶就無法使用普通的 bash 或者 csh 什麼的 shell 程序。編輯/etc/passwd 文件: $ sudo vim /etc/passwd 在文件末尾,你應該能找到類似這樣的行: git:x:1000:1000::/home/git:/bin/sh 把 bin/sh 改為 /usr/bin/git-shell (或者用 which git-shell 查看它的實際安裝路徑)。該行修改後的樣子如下: git:x:1000:1000::/home/git:/usr/bin/git-shell 現在 git 用戶只能用 SSH 連接來推送和獲取 Git 倉庫,而不能直接使用主機 shell。嘗試普通 SSH 登錄的話,會看到下面這樣的拒絕信息: $ ssh git@gitserver fatal: What do you think I am? A shell? Connection to gitserver closed. 這里提供的方法,組內所有成員對project都有讀寫許可權,也就是說每個分支都可以push代碼,如果需要更加細致的許可權控制,請使用Gitosis或者Gitolite。 2. 搭建Gitweb 安裝gitweb之後就可以通過中國站訪問我們的項目了。就像中國git.kernel.org一樣顯示了 首先需要安裝Gitweb,如果沒有安裝apache,那麼直接安裝Gitweb,也會將apache2安裝的。 $ sudo apt-get install gitweb apache2 安裝完成之後,我們只需要修改一下配置文件,將/etc/gitweb.conf文件中的$projectroot修改為放工程文件的目錄。 $ vim /etc/gitweb.conf # path to git projects (.git) $projectroot = "/opt/git"; 至此gitweb就可以使用了,現在可以通過中國[git_server_IP]/gitweb訪問了。 3. Push之後發送郵件通知 當組內成員push代碼到伺服器上之後,會自動發送郵件通知組內所有人員,該次push的具體內容是什麼。具體配置方法: 一般在安裝Git的時候發送郵件的腳本/usr/share/git-core/contrib/hooks/post-receive-email已經存在了,首先要修改所有者和執行許可權,並且安裝sendmail。 $ sudo chown git:git post-receive-email $ sudo chmod 755 post-receive-email $ sudo apt-get install sendmail 然後到切換到工程目錄下的hooks中,添加 post-receive軟鏈接指向 /usr/share/git-core/contrib/hooks/ post-receive-email。 $ cd /opt/git/project.git/hooks $ ln -s /usr/share/git-core/contrib/hooks/post-receive-email post-receive 最後修改工程目錄中的config文件即可。mailinglist是郵件列表, envelopesender是發件人的郵箱, $ vim /opt/git/project.git/config [core] repositoryformatversion = 0 filemode = true bare = true [hooks] mailinglist = "example@gmail中國, example2@gmail中國" # 收件人列表 envelopesender = project.git@example中國 # 送件人地址 emailprefix = "[Project commit] " # 郵件標題前綴 showrev = "git show -C %s; echo" # 不只顯示有變化的文件,同時也顯示改變的內容 為了使郵件顯示的更清楚,還要修改一下工程目錄當中的description文件,在description文件中,默認第一行是項目名稱,所以要在第一行填入該項目的名稱,這個在郵件中會有顯示。 $ vim /opt/git/project.git/description Project_
⑤ gitlab怎麼克隆最新版本
生成密鑰對,點擊用戶頭像,選擇"Settings",將生成的公鑰信息貼在jason用戶的"SSHKeys"裡面,公鑰添加成功,查看項目的詳細信息,選擇基於SSH協議克隆的URL,在第1步中的伺服器上執行克隆操作。
安裝git命令,點擊拷貝HTTP的URL,使用git命令clone遠程代碼到本地。
GitLab是一個用於倉庫管理系統的開源項目,使用Git作為代碼管理工具,並在此基礎上搭建起來的Web服務。安裝方法是參考GitLab在GitHub上的Wiki頁面。
⑥ 有沒有人知道怎麼在windows上使用git 或者在linux商使用git
1.查看Linux系統伺服器系統版本
ifconfig
2在伺服器上安裝git及做些操作
- 執行命令
`
sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
`
- 同時下載git-1.8.2.2.tar.gz文件,然後將其`mv` 到`/usr/local/src`目錄。[git-1.8.2.2.tar.gz安裝包下載地址][1]
```
cd /usr/local/src
sudo tar -zvxf git-1.8.2.2.tar.gz
cd git-1.8.2.2
sudo make prefix=/usr/local/git all
sudo make prefix=/usr/local/git install
```
- 增加軟連接
```
sudo ln -s /usr/local/git/bin/* /usr/bin/
git --version #如果能顯示版本號,即表示成功`
```
3.在伺服器安裝gitosis
```
sudo yum install python python-setuptools
cd /usr/local/src
git clone git://github.com/res0nat0r/gitosis.git
cd gitosis
python setup.py install
#顯示Finished processing dependencies for gitosis==0.2即表示成功
```
4.在開發機上,生產密鑰並上傳到伺服器上
```
ssh-keygen -t rsa #一路回車,不需要設置密碼
#上傳公鑰到伺服器(默認SSH埠22)
scp ~/.ssh/id_rsa.pub [email protected]:/tmp
```
或編輯`/etc/hosts`文件,在`/etc/hosts`文件里添加如下文本:
```
# local git server
192.168.100.202 zgit
```
然後再上傳自己的公鑰到伺服器
```
scp ~/.ssh/id_rsa.pub tailin@zgit:/tmp/
# 登錄到git伺服器
ls /tmp/id_rsa.pub #顯示已經上傳的密鑰
```
5.伺服器上生成git用戶,使用git用戶並初始化`gitosis`
```
# 創建git版本管理用戶 git
sudo useradd -c 'git version manage' -m -d /home/git -s bin/bash git
# 更改git用戶的密碼
sudo passwd git
# su 到git用戶
su - git
gitosis-init < /tmp/id_rsa.pub
#顯示以下信息即表示成功
#Initialized empty Git repository in /home/git/repositories/gitosis-admin.git/
#Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/
#刪除密鑰
rm -rf /tmp/id_rsa.pub
```
6.在個人開發機上導出項目管理
```
mkdir -p /repo
cd /repo
git clone git@zgit:gitosis-admin.git
```
7.在個人開發機增加及設置管理項目
```
cd /repo/gitosis-admin
# 查看git伺服器已經上傳密鑰
ls keydir
cat keydir/[email protected]
#[email protected]為已經上傳的開發機生成的公密
#顯示密鑰 最後的字元串為 密鑰用戶名 這里為 ltl@jackliu-ThinkPad
vim gitosis.conf
#在文件尾增加以下內容
[group test-git] # 具有寫許可權的組名稱
writable = test-git # 該組可寫的項目名稱
members = ltl@jackliu-ThinkPad [email protected] #該組的成員(密鑰用戶名) 多個用戶協同開發時,以空格分隔
# 如果要增加只讀的組 參考如下
# [group test-git-readnoly] # 具有都許可權的組名稱
# readonly = test-git # 該組只讀的項目名稱
# members = ltl@jackliu-ThinkPad # 該組的成員
#提交修改
git add .
git commit -a -m "add test-git repo"
git push
```
8.在個人開發機上初始,增加及使用項目test-git
```
cd ~/repo
mkdir test-git
cd test-git
git init
touch readme
git add .
git commit -a -m "init test-git"
git remote add origin git@zgit:test-git.git
git push origin master
```
9.增加協同開發者的公鑰key到git伺服器
- 執行`cd repo/gitosis-admin/keydir`切換目錄
- 把協同開發者的id_rsa.pub 文件里的數據 拷貝到 對應的開發者的`密鑰用戶名.pub`文件。如把密鑰用戶名 [email protected] 的 id_rsa.pub 文件中文本 粘貼到 [email protected] 文件里,並保存
- 然後將添加數據後的目錄更新到git伺服器
```
⑦ 怎麼將更新後的代碼上傳到git
一、從git倉庫打開 git bash 命令輸入框。查看本地分支文件信息,確保更新時不產生沖突
查看本地與遠程服務端的不同:
#獲取遠端庫最新信息$gitfetchorigin$ git diff master origin/master
第一個master是本地分支名稱,第二個master是遠程服務分支名稱
⑧ 如何從遠程git伺服器上拉取一個新建的git項目
創建本地倉庫並同步到遠程
git是非常強大的版本管理工具。接下來的時間里,我就和大家絮叨絮叨git的入門:如何在本地創建一個git倉庫,並把自己的本地代碼同步到遠程。此教程是在mac上操作的,如果您的系統是Linux,那麼操作方法相同;如果您的系統是windows,那麼,只需要把git的bash窗口調出來,以後的過程也都與Linux相同。
一、首先,您需要安裝git,此步就忽略了,自行安裝即可。
二、假設你目前還沒有創建一個工作目錄,那麼,先創建一個目錄吧,就叫StudyGit。
三、現在的StudyGit目錄還只是一個本地目錄,和git沒有任何關聯,那麼,我們怎麼樣才能把這個目錄和git關聯起來呢?只需要進入StudyGit目錄,運行如下命令:
yanyaozhen@macbookpro:~/Coding/Practice/StudyGit$gitinit
/Users/yanyaozhen/Coding/Practice/StudyGit/.git/
提示已經說明我們初始化了一個空的本地git倉庫。如果你查看StudyGit下的所有文件時,會發現一個.git 的隱藏文件,這個文件非常重要,版本的控制就靠它了。
四、接下來我們來看一個基本可以說是用的最頻繁的一個命令:
yanyaozhen@macbookpro:~/Coding/Practice/StudyGit$gitstatus
五、現在讓我們來創建一個文件吧。我們創建一個叫「a.txt」的文本文件,並且內容如下
anyaozhen@macbookpro:~/Coding/Practice/StudyGit$cata.txt
⑨ 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、向公共伺服器提交結果,然後通知所有開發人員。
⑩ 自己vps搭的git push之後必須在伺服器上執行git reset --hard 代碼才成更新 想弄成提交之後立即更新 求解
GIT跟SVN一樣有自己的集中式版本庫或伺服器。但,GIT更傾向於被使用於分布式模式,也就是每個開發人員從中心版本庫/伺服器上chect out代碼後會在自己的機器上克隆一個自己的版本庫。
所有的資源控制系統都是把文件的元信息隱藏在一個類似.svn,.cvs等的文件夾里。如果你把.git目錄的體積大小跟.svn比較,你會發現它們差距很大。
分支在SVN中一點不特別,就是版本庫中的另外的一個目錄。如果你想知道是否合並了一個分支,你需要手工運行像這樣的命令svn propget svn:mergeinfo,來確認代碼是否被合並。所以,經常會發生有些分支被遺漏的情況。
處理GIT的分支卻是相當的簡單和有趣。你可以從同一個工作目錄下快速的在幾個分支間切換