『壹』 怎樣使用git將本地代碼上傳到伺服器
注冊賬戶以及創建倉庫
要想使用github第一步當然是注冊github賬號了。之後就可以創建倉庫了(免費用戶只能建公共倉庫),Create a New Repository,填好名稱後Create,之後會出現一些倉庫的配置信息,這也是一個git的簡單教程。步驟如下:
打開https://github.com直接在首頁上注冊
2)上傳到github
$ git push origin master
git push命令會將本地倉庫推送到遠程伺服器。
git pull命令則相反。
註:首次提交,先git pull下,修改完代碼後,使用git status可以查看文件的差別,使用git add 添加要commit的文件。
大功告成,現在你知道如何將本地的項目提交到github上了。
gitignore文件
.gitignore顧名思義就是告訴git需要忽略的文件,這是一個很重要並且很實用的文件。一般我們寫完代碼後會執行編譯、調試等操作,這期間會產生很多中間文件和可執行文件,這些都不是代碼文件,是不需要git來管理的。我們在git status的時候會看到很多這樣的文件,如果用git add -A來添加的話會把他們都加進去,而手動一個個添加的話也太麻煩了。這時我們就需要.gitignore了。
Git命令
查看、添加、提交、刪除、找回,重置修改文件
git help <command> # 顯示command的helpgit show # 顯示某次提交的內容 git show $idgit co -- <file> # 拋棄工作區修改git co . # 拋棄工作區修改git add <file> # 將工作文件修改提交到本地暫存區git add . # 將所有修改過的工作文件提交暫存區git rm <file> # 從版本庫中刪除文件git rm <file> --cached # 從版本庫中刪除文件,但不刪除文件git reset <file> # 從暫存區恢復到工作文件git reset -- . # 從暫存區恢復到工作文件git reset --hard # 恢復最近一次提交過的狀態,即放棄上次提交後的所有本次修改git ci <file> git ci . git ci -a # 將git add, git rm和git ci等操作都合並在一起做git ci -am "some comments"git ci --amend # 修改最後一次提交記錄git revert <$id> # 恢復某次提交的狀態,恢復動作本身也創建次提交對象git revert HEAD # 恢復最後一次提交的狀態
查看文件diff
git diff <file> # 比較當前文件和暫存區文件差異 git diffgit diff <id1><id2> # 比較兩次提交之間的差異git diff <branch1>..<branch2> # 在兩個分支之間比較git diff --staged # 比較暫存區和版本庫差異git diff --cached # 比較暫存區和版本庫差異git diff --stat # 僅僅比較統計信息
查看提交記錄
git log git log <file> # 查看該文件每次提交記錄git log -p <file> # 查看每次詳細修改內容的diffgit log -p -2 # 查看最近兩次詳細修改內容的diffgit log --stat #查看提交統計信息
tig
Mac上可以使用tig代替diff和log,brew install tig
Git 本地分支管理
查看、切換、創建和刪除分支
git br -r # 查看遠程分支git br <new_branch> # 創建新的分支git br -v # 查看各個分支最後提交信息git br --merged # 查看已經被合並到當前分支的分支git br --no-merged # 查看尚未被合並到當前分支的分支git co <branch> # 切換到某個分支git co -b <new_branch> # 創建新的分支,並且切換過去git co -b <new_branch> <branch> # 基於branch創建新的new_branchgit co $id # 把某次歷史提交記錄checkout出來,但無分支信息,切換到其他分支會自動刪除git co $id -b <new_branch> # 把某次歷史提交記錄checkout出來,創建成一個分支git br -d <branch> # 刪除某個分支git br -D <branch> # 強制刪除某個分支 (未被合並的分支被刪除的時候需要強制)
分支合並和rebase
git merge <branch> # 將branch分支合並到當前分支git merge origin/master --no-ff # 不要Fast-Foward合並,這樣可以生成merge提交git rebase master <branch> # 將master rebase到branch,相當於: git co <branch> && git rebase master && git co master && git merge <branch>
Git補丁管理(方便在多台機器上開發同步時用)
git diff > ../sync.patch # 生成補丁git apply ../sync.patch # 打補丁git apply --check ../sync.patch #測試補丁能否成功
Git暫存管理
git stash # 暫存git stash list # 列所有stashgit stash apply # 恢復暫存的內容git stash drop # 刪除暫存區Git遠程分支管理
git pull # 抓取遠程倉庫所有分支更新並合並到本地git pull --no-ff # 抓取遠程倉庫所有分支更新並合並到本地,不要快進合並git fetch origin # 抓取遠程倉庫更新git merge origin/master # 將遠程主分支合並到本地當前分支git co --track origin/branch # 跟蹤某個遠程分支創建相應的本地分支git co -b <local_branch> origin/<remote_branch> # 基於遠程分支創建本地分支,功能同上
git push # push所有分支
git push origin master # 將本地主分支推到遠程主分支git push -u origin master # 將本地主分支推到遠程(如無遠程主分支則創建,用於初始化遠程倉庫)git push origin <local_branch> # 創建遠程分支, origin是遠程倉庫名git push origin <local_branch>:<remote_branch> # 創建遠程分支git push origin :<remote_branch> #先刪除本地分支(git br -d <branch>),然後再push刪除遠程分支
Git遠程倉庫管理
git remote -v # 查看遠程伺服器地址和倉庫名稱git remote show origin # 查看遠程伺服器倉庫狀態git remote add origin git@ github:robbin/robbin_site.git # 添加遠程倉庫地址git remote set-url origin git@ github.com:robbin/robbin_site.git # 設置遠程倉庫地址(用於修改遠程倉庫地址) git remote rm <repository> # 刪除遠程倉庫
創建遠程倉庫
git clone --bare robbin_site robbin_site.git # 用帶版本的項目創建純版本倉庫scp -r my_project.git git@ git.csdn.net:~ # 將純倉庫上傳到伺服器上mkdir robbin_site.git && cd robbin_site.git && git --bare init # 在伺服器創建純倉庫git remote add origin git@ github.com:robbin/robbin_site.git # 設置遠程倉庫地址git push -u origin master # 客戶端首次提交git push -u origin develop # 首次將本地develop分支提交到遠程develop分支,並且trackgit remote set-head origin master # 設置遠程倉庫的HEAD指向master分支
也可以命令設置跟蹤遠程庫和本地庫
git branch --set-upstream master origin/master
git branch --set-upstream develop origin/develop此文章屬轉載,原文地址:http://1ke.co/course/194另附: 解決 在使用git 對源代碼進行push到gitHub時可能會出錯,error: failed to push some refs to git。出現錯誤的主要原因是github中的README.md文件不在本地代碼目錄中可以通過如下命令進行github與本地代碼合並: git pull --rebase origin master重新執行之前的git push 命令,成功!
『貳』 git 怎麼把本地代碼上傳到伺服器
您將您本地的修改做了一次commit
git add .
git commit -m 'fix something'
推送到伺服器
git push origin master
『叄』 配置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、(先進入項目文件夾)通過命令 git init 把這個目錄變成git可以管理的倉庫
git init
2、把文件添加到版本庫中,使用命令 git add .添加到暫存區裡面去,不要忘記後面的小數點「.」,意為添加文件夾下的所有文件
git add .
3、用命令 git commit告訴Git,把文件提交到倉庫。引號內為提交說明
git commit -m 'first commit'
4、關聯到遠程庫
git remote add origin 你的遠程庫地址
如:
git remote add origin https://github.com/cade8800/ionic-demo.git
5、獲取遠程庫與本地同步合並(如果遠程庫不為空必須做這一步,否則後面的提交會失敗)
git pull --rebase origin master
6、把本地庫的內容推送到遠程,使用 git push命令,實際上是把當前分支master推送到遠程。執行此命令後會要求輸入用戶名、密碼,驗證通過後即開始上傳。
『伍』 搭建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 remote -v 查看。如果沒有則先使用 git remote add 命令添加一個(假設名為origin,分支為master)。如果已經有了,則使用 git push origin master命令提交當前工作目錄下的分支到遠程master分支