說明
文章目錄
- 說明
- 1 GitHub工作流程與介紹
- 2. Git安裝與配置
- 3. Git本地倉庫操作
- 4. 開發環境中使用GitHub
- 4.1 tortoiseGit(windows)簡化操作
- 4.2 idea中使用Git/GitHub
- 4.2.1 配置Git和GitHub
- 4.2.2 從GitHub上clone項
- 4.2.3 提交項目到本地倉庫/遠程倉庫
- 4.2.4 更新項目到本地倉庫
- 4.2.5 在終端中使用Git命令
- 4.2.6 創建項目並上傳github
- 4.3 eclipse中使用Git/Github
- 5.Gitlab使用
1 GitHub工作流程與介紹
github是通過Git進行版本控制的軟件源代碼託管服務平臺。github除了Git代碼倉庫託管及基本的Web管理界面以外,它還提供了一些方便社會化共同軟件開發的功能,即一般人口中的社羣功能,包括允許用戶追蹤其他用戶、組織、軟件庫的動態,對軟件代碼的改動和bug提出評論等。
1.1 工作流程
上圖展示了git的整體架構,以及和各部分相關的主要命令,其中涉及的各部分。
-
工作區(working directory) 簡言之就是你工作的區域。對於git而言,就是本地工作目錄。工作區的內容會包含提交到暫存區和版本庫(當前提交點)的內容,同時也包含自己的修改內容。
git add 【文件名】或者【 . (全部)】
:將文件從工作去提交到暫存區git pull
:將遠程倉庫的改動更新到本地工作區 -
暫存區(stage area, 又稱爲索引區index) 是git中一個非常重要的概念。是我們把修改提交版本庫前的一個過渡階段。查看GIT自帶幫助手冊的時候,通常以index來表示暫存區。在工作目錄下有一個.git的目錄,裏面有個index文件,存儲着關於暫存區的內容。git add命令將工作區內容添加到暫存區。
git commit -m "提交描述"
:將暫存區提交到本地倉庫 -
本地倉庫(local repository) 版本控制系統的倉庫,存在於本地。當執行git commit命令後,會將暫存區內容提交到倉庫之中。在工作區下面有.git的目錄,這個目錄下的內容不屬於工作區,裏面便是倉庫的數據信息,暫存區相關內容也在其中。這裏也可以使用merge或rebase將***遠程倉庫副本***合併到本地倉庫。圖中的只有merge,注意這裏也可以使用rebase。
git push
:將本地倉庫提交到遠程倉庫 -
遠程庫(remote repository) 與本地倉庫概念基本一致,不同之處在於一個存在遠程,可用於遠程協作,一個卻是存在於本地。通過push/pull可實現本地與遠程的交互;
-
git pull
:將遠程倉庫的改動更新到本地工作區其他命令:
-
git remote -v
:查看origin和upstream源 -
git remote add origin/upstream git地址
:添加origin/upstream源 -
git fetch upstream
:獲取upstream源倉庫的提交和改變 -
git checkout master
:切換到master -
git merge upstream/master
:合併遠程的master
1.2 欄目介紹
code
:代碼所在地issues
:討論、bug跟蹤pull request
:提交請求,進行code viewproject
:項目管理、工作計劃To Do
:待完成任務Doing
:正在進行中Done
:已完成的
Wiki
:項目介紹,資料存放處(可放md格式)
1.3 GitHub創建主程序倉庫
-
創建主程序倉庫
helloworld
,賬戶liuxinfengabc
,屬性爲public
-
倉庫名字
helloworld
,屬性public
,任何人可見,初始化一個readme
文件。
- 創建成功 https://github.com/liuxinfengabc/helloworld
1.4 GitHub 創建開發者倉庫
- 創建開發人員賬號
-
創建開發賬戶 ,申請新的QQ郵箱 [email protected]進行賬戶的創建。
-
登錄Github進行郵箱驗證
-
前往 https://github.com/liuxinfengabc/helloworld,點擊Fork,複製代碼到自己的開發者倉庫
-
Fork成功
- 回到自己的界面github.com,看到自己Fork的代碼
1.5 GitHub中提交文件
在github中可以進行簡單操作,創建文件,提交文件,如何複雜的操作,需要在本地倉庫進行操作,提交。
2. Git安裝與配置
2.1 準備工作
- Git官網(https://git-scm.com/)下載Git。
- GitHub官網(https://github.com/)註冊賬號。
- 測試倉庫 https://github.com/liuxinfengabc/cultivate.git
2.2 安裝Git
- 點擊安裝,選擇目錄爲根目錄,文件夾爲Git,然後Next->默認安裝。
- 安裝完成後打開根目錄,找到Git文件夾,右鍵git-bash.exe可執行文件將其固定的工具欄,點擊git-bash.exe運行。
- 輸入指令 ls 查看文件目錄。
正常安裝完成!
2.3 運行Git註冊用戶
-
設置用戶名和郵箱。
設置用戶名:
$ git config --global user.name "Your Name"
設置郵箱:
$ git config --globaluser,email "[email protected]"
設置用戶名和郵箱,修改後提交到遠程倉庫能夠看到是提交者,用於在團隊合作開發中,表明代碼作者。
1. 查看當前登錄賬號: git config user.name 2. 查看當前登錄郵箱: git config user.email 3. 修改用戶名和郵箱: git config --global user.name "Your_username" git config --global user.email "Your_email"
-
輸入 $ git init 啓動Git。
2.4 GitHub設置公鑰免密提交
-
.新建/連接主存儲庫。
-
輸入 $ ssh-keygen -t rsa -C “[email protected]” 按三次回車生成公鑰,在C:\Users\Administrator.ssh下找到id_rsa.pub文件,記事本打開復制公鑰。或則
-
在GitHub上新建密鑰,自定義標題(title)將公鑰粘貼保存。
-
選擇設置
-
知道到SSH and GPS keys 菜單,點擊 New SSH key
-
-
複製生成的key
-
收到郵件
2.5 常用git命令
-
文件操作(與Linux命令一樣)
mkdir
文件名:創建文件夾cd
文件夾名:進入文件夾touch
文件名:創建文件
-git rm
文件名
-
複製倉庫
git init
:在本地初始化,創建Git倉庫git clone
: 複製倉庫到本地倉庫。git status
:查看當前狀態
-
提交信息
-
git add 【文件名】或者【 . (全部)】
:將文件從工作去提交到暫存區 -
git commit -m "提交描述"
:將暫存區提交到本地倉庫 -
git push
:將本地倉庫提交到遠程倉庫
-
#在使用git commit命令將修改從暫存區提交到本地版本庫後,只剩下最後一步將本地版本庫的分支推送到遠程服務器上對應的分支了
git push的一般形式爲 git push <遠程主機名> <本地分支名> <遠程分支名> ,
#例如 git push origin master:refs/for/master ,即是將本地的master分支推送到遠程主機origin上的對應master分支, origin 是遠程主機名。第一個master是本地分支名,第二個master是遠程分支名。
git push origin master
#如果遠程分支被省略,如上則表示將本地分支推送到與之存在追蹤關係的遠程分支(通常兩者同名),如果該遠程分支不存在,則會被新建
git push origin :refs/for/master
#如果省略本地分支名,則表示刪除指定的遠程分支,因爲這等同於推送一個空的本地分支到遠程分支,等同於 git push origin –delete master
git push origin
#如果當前分支與遠程分支存在追蹤關係,則本地分支和遠程分支都可以省略,將當前分支推送到origin主機的對應分支
git push
#如果當前分支只有一個遠程分支,那麼主機名都可以省略,形如 git push,可以使用git branch -r ,查看遠程的分支名
-
更新倉庫信息
git pull
:將遠程倉庫的改動更新到本地工作區git remote -v
:查看origin和upstream源git remote add origin/upstream git地址
:添加origin/upstream源git fetch upstream
:獲取upstream源倉庫的提交和改變git checkout master
:切換到mastergit merge upstream/master
:合併遠程的master
防爬蟲閱讀請忽略
本文章來自山東建築大學計算機科學與技術學院深度工作室培訓資料。爲了能讓更多人知道這份很詳細的資料,也爲了幫助更多人,特藉助此平臺分享給大家。
由劉新鋒教授,程宏豪同學,還有積成能源有限公司研發部的哥哥們,還有深度工作室其他貢獻的同學一起完成。感謝他們。
培訓資料已經開源:https://github.com/liuxinfengabc/cultivate
本篇開源地址:
https://github.com/liuxinfengabc/cultivate/blob/master/2.CASE%E5%B7%A5%E5%85%B7/3.%E5%8F%98%E6%9B%B4%E6%8E%A7%E5%88%B6%E5%B7%A5%E5%85%B7/2.GIT-GITHUB/GitHub%E4%B8%8EGit%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E%E6%96%87%E6%A1%A3.md
本文CSDN地址:https://truedei.blog.csdn.net/article/details/105897950
3. Git本地倉庫操作
1. 本文假定:主程序員GitHub地址:https://github.com/liuxinfengabc/helloworld
2. 開發人員登錄,先從主程序員GitHub(https://github.com/liuxinfengabc/helloworld)中進行fork,然後再clone到自己的Github中:
開發人員GitHub地址:https://github.com/github-develop/helloworld
- 獲取項目地址
https://github.com/github-develop/helloworld.git
3.1 創建本地庫
git init
主要用來初始化一個空的git
本地倉庫。執行完上面的命令,當前目錄下會自動生成.git
隱藏文件夾,該隱藏文件夾就是git
版本庫。
使用方法:進入某個空的文件夾下,打開Git Bash
命令窗口輸入
-
git init
-
git clone https://github.com/github-develop/helloworld.git
-
下載結果
3.2 向遠程倉庫添加文件
開發者在本地修改內容後,需要進入要操作的文件夾內進行git操作
git add .
: . 表示當前文件夾git commit -m "註釋信息“
git push
: #推送到開發者倉庫
3.2.1 開發者工作區–>開發者遠程倉庫
命令操作,打開 git bash 命令:
cd test
#進入文件夾touch one.js
#創建一個文件git add one.js
#添加需要提交的文件git status
#查看狀態git commit -m "修改XXXXXX"
#提交到本地倉庫git push
#從本地倉庫推送到遠程倉庫
這時候只是在自己的GitHub倉庫,還沒有到主程序員的GitHub倉庫
解決git push代碼到github上一直提示輸入用戶名及密碼的問題
在github系統上克隆代碼的地址默認採用的是http的方式,我們一般這樣clone代碼:
git clone https://github.com/yychuyu/linux-system-programming.git
而如果採用ssh方式的話,是這樣clone代碼的:
git clone [email protected]:yychuyu/linux-system-programming.git
解決辦法很簡單,將http方式改爲ssh方式即可。
1 先查看當前方式:
git remote -v
2 把http方式改爲ssh方式。先移除舊的http的origin:
git remote rm origin
3 再添加新的ssh方式的origin:
git remote add origin [email protected]:yychuyu/linux-system-programming.git
4 檢查一下有沒改變成功:
git remote -v
5 改動完之後直接執行git push是無法推送代碼的,需要設置一下上游要跟蹤的分支,與此同時會自動執行一次git push命令,此時已經不用要求輸入用戶名及密碼啦!
git push --set-upstream origin master
3.2.2 開發者GitHub倉庫–>主程序員GitHub倉庫
-
登錄Github,進入項目,
點擊New pull request 命令
,
-
通過Create pull request 進行提交,提交給主程序員了,通知審覈
3.2.3主程序員合併request
-
主程序員登錄Github ,查看pull request
-
點擊FileChanged 查看修改內容,進行審覈,並進行合併
這樣就從開發人員的GitHub中更新到自己原來fork的倉庫主程序員中了
3.3 同步主程序員倉庫中的更新
說明:開發人員倉庫和主程序員的倉庫是兩個獨立的倉庫,主程序員倉庫更新後不會自動更新到開發人員倉庫中。需要主動進行更新。
3.3.1 基本步驟
git remote -v
:查看origin和upstream源git remote add origin/upstream git地址
:添加origin/upstream源git remote rm origin/upstream
#刪除origin/upstreamgit fetch upstream
git checkout master
git merge upstream/master
git push
3.3.2 開發人員的倉庫
可以看出這時候開發人員的倉庫還沒更新。
-
git remote -v
:查看origin和upstream源。-
origin
表示遠程主機(開發人員倉庫),upstream表示(主程序員倉庫) -
liuxinfengabc
賬戶登錄(主程序員賬戶)D:\idea-work\zup-boot-org>git remote -v origin https://github.com/zonedaylab/zup-boot.git (fetch) origin https://github.com/zonedaylab/zup-boot.git (push)
-
-
添加主程序倉庫地址
git remote add upstream https://github.com/liuxinfengabc/helloworld
-
git fetch upstream
# 獲取遠程主程序倉庫(upstream)代碼 -
git checkout master
#切換到本地Master -
git merge upstream/master
#合併遠程分支 -
git push
#推送到開發人員遠程倉庫。此時,開發人員本地庫已經和主程序員的原倉庫已經完全同步了。但是注意,此時只是你電腦上的本地庫和遠程的github原倉庫同步了,你自己的github倉庫還沒有同步,此時需要使用“git push”命令把你本地的倉庫提交到github中。
3.4 版本回退
說明:如果發現某次的版本提交完畢後有錯誤,需要回退,可以用下面的方法
步驟:
-
git log #查看版本
-
git reset --hard 版本號 #回退版本(本地)
-
git push -f #push到遠程倉庫
此時回退版本已經完畢
當push出錯時可以嘗試下面的命令
- git push origin master
- git push -f origin master
3.5 常見錯誤
3.5.1解決GitHub每次push時都提示輸入用戶名和密碼的問題
-
原因
我們在建立遠程倉庫或者克隆項目時,使用的是HTTPS方式 ,HTTPS方式push不會保存用戶名和密碼。我們需要把HTTPS方式改成SSH的方式
-
查看遠程連接方式
git remote -v
$ git remote -v
origin [email protected]:liuxinfengabc/https://github.com/liuxinfengabc/cultivate/cultivate.git (fetch)
origin [email protected]:liuxinfengabc/https://github.com/liuxinfengabc/cultivate/cultivate.git (push)
- 刪除origin
$ git remote rm origin
4.配置SSH方式
$ git remote add origin [email protected]:liuxinfengabc/cultivate.git
防爬蟲閱讀請忽略
本文章來自山東建築大學計算機科學與技術學院深度工作室培訓資料。爲了能讓更多人知道這份很詳細的資料,也爲了幫助更多人,特藉助此平臺分享給大家。
由劉新鋒教授,程宏豪同學,還有積成能源有限公司研發部的哥哥們,還有深度工作室其他貢獻的同學一起完成。感謝他們。
培訓資料已經開源:https://github.com/liuxinfengabc/cultivate
本篇開源地址:
https://github.com/liuxinfengabc/cultivate/blob/master/2.CASE%E5%B7%A5%E5%85%B7/3.%E5%8F%98%E6%9B%B4%E6%8E%A7%E5%88%B6%E5%B7%A5%E5%85%B7/2.GIT-GITHUB/GitHub%E4%B8%8EGit%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E%E6%96%87%E6%A1%A3.md
本文CSDN地址:https://truedei.blog.csdn.net/article/details/105897950
4. 開發環境中使用GitHub
4.1 tortoiseGit(windows)簡化操作
tortoiseGit是一個開放的git版本控制系統的源客戶端,支持Winxp/vista/win7.該軟件功能和git一樣,不同的是:git是命令行操作模式,tortoiseGit界面化操作模式,不用記git相關命令就可以直接操作,可根據自己情況選擇安裝.
tortoiseGit下載地址:https://download.tortoisegit.org/tgit/
-
git commit 操作。 修改了文件後,右鍵選擇commit,輸入Message後,點Commit提交到本地倉庫。
-
git pull 拉取服務器文件。在項目文件夾下右鍵菜單,選擇TortoiseGit->Pull,點擊OK.
-
git push 提交代表到服務器,TortoiseGit-> git push
如果文件出現感嘆號則表示有衝突,必須先解決衝突
:
- 1.在點擊close後可以直接在彈出的窗口中點擊yes來查看衝突,也可以通過點擊Diff看本地倉庫文件和服務器上面的文件哪裏衝突了。
- 2.在彈出的窗口中雙擊打開衝突文件,解決衝突問題。
- 3.衝突解決完之後,刪除在目錄下生成出的多餘文件,再次commit。
新增篇:
第一步:在倉庫中新增文件後,先pull,然後可以在diff中查看和倉庫區別
第二步:右鍵->commit,選擇你需要提交的文件,然後點擊commit
第三步:push文件
4.2 idea中使用Git/GitHub
4.2.1 配置Git和GitHub
- 設置git.exe路徑
File–>Settings–>Version Control–>Git/GitHub
- 登錄Github賬戶
4.2.2 從GitHub上clone項
-
File ->New->Project from Version Control
-
設置GitHub地址以及存儲路徑
-
點擊Clone
4. 克隆完畢
4.2.3 提交項目到本地倉庫/遠程倉庫
-
添加新增文件(git add)
-
提交文件按 VCS–>Git–>Commit Changes
看到這個說明已經push成功
如果往主程序員的倉庫更新,就參考前面講的pull request
4.2.4 更新項目到本地倉庫
若別人更新了倉庫,在idea中怎麼辦呢?
這三個地方都可以
4.2.5 在終端中使用Git命令
File–>Settings–>Tools–>Terminal–>Shell path
Alt +F12 打開命令窗口,進行命令操作,與在Git bash下使用一樣的效果,可以執行以下命令。
-
git remote -v:查看origin和upstream源
-
git remote add origin/upstream git地址:添加origin/upstream源
-
git fetch upstream
-
git checkout master
-
git merge upstream/master
-
git push
4.2.6 創建項目並上傳github
點擊Share
點擊Add,就可以將項目傳到GitHub上了,不存在倉庫就會創建一個名字爲testJava的倉庫
看到Successfully,表示創建成功
4.3 eclipse中使用Git/Github
4.3.1 eclipse中使用Git導入工程
- 打開Git Repositories窗口,點擊右上角Add an existing local Git Repository to this view圖標
- 在Directory中選擇你本地Git總倉庫,在下方選擇你想導入的Git倉庫目錄
- 打開你導入的倉庫->Working Tree,選擇你想導入的工程,右鍵->Import Projects…
- 調整選項,導入工程
- 右鍵已導入工程->Gradle->Refresh Gradle Project
4.3.2 eclipse中使用Git同步工程
- 右鍵工程->Team->Synchronize Workspace進入同步窗口
- 對雙向紅箭頭文件,打開,進行代碼合併操作,操作完成後 右鍵->Mark asMerged
- 選擇要上傳的文件,右鍵->Add to Index/在Unstaged Changes中右鍵->Add to Index
- 在Staged Changes中可以查看要提交的文件,在Commit Message中輸入提交內容備註,以及作者相關,點擊commit至本地
- Pull拉取服務器上更新文件
- 最後Push至服務器
防爬蟲閱讀請忽略
本文章來自山東建築大學計算機科學與技術學院深度工作室培訓資料。爲了能讓更多人知道這份很詳細的資料,也爲了幫助更多人,特藉助此平臺分享給大家。
由劉新鋒教授,程宏豪同學,還有積成能源有限公司研發部的哥哥們,還有深度工作室其他貢獻的同學一起完成。感謝他們。
培訓資料已經開源:https://github.com/liuxinfengabc/cultivate
本篇開源地址:
https://github.com/liuxinfengabc/cultivate/blob/master/2.CASE%E5%B7%A5%E5%85%B7/3.%E5%8F%98%E6%9B%B4%E6%8E%A7%E5%88%B6%E5%B7%A5%E5%85%B7/2.GIT-GITHUB/GitHub%E4%B8%8EGit%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E%E6%96%87%E6%A1%A3.md
本文CSDN地址:https://truedei.blog.csdn.net/article/details/105897950
5.Gitlab使用
5.1 idea使用Gitlab
5.1.1下載Gitlab插件
5.1.2登錄Github查找token
https下不用配置
5.1.3idea設置gitlab
5.1.4複製代碼地址
http://124.130.192.24:10015/liuxinfengabc/test.git
5.1.5Clone代碼
5.1.6 更新代碼
出錯:
但是命令行可以:
5.2 pycharm使用Gitlab
與idea基本相同
5.2.1下載gitlab插件
5.2.2配置GitLab服務器
5.2.3 Clone代碼源
- 獲取代碼地址,首先需要註冊賬戶,並且有代碼權限
http://git.iesnengyuan.com/jianda/gisofflinemapsystem
- pyCharm執行Clone命令
打開VCS菜單-->Git--->Git Clone
- 輸入用戶名和密碼
5.2.4配置Terminal 執行git命令
ALT+F12顯示終端
5.3 HBuilderX使用GitLab
5.2.1git插件安裝
1、打開工具–》插件安裝
2、安裝git
5.2.2從gitlab加載項目
1、選擇文件–》新建–》項目
2、選擇文件–》導入–》導入git項目–》輸入地址–》導入即可
本文章來自山東建築大學計算機科學與技術學院深度工作室培訓資料。深度工作室2018年由我帶頭創建,同時我也是主要負責人之一。
爲了能讓更多人知道這份很詳細的資料,也爲了幫助更多人,特藉助此平臺分享給大家。
由劉新鋒教授,程宏豪同學,還有積成能源有限公司研發部的哥哥們,還有深度工作室其他貢獻的同學一起完成。感謝他們。
培訓資料已經開源:https://github.com/liuxinfengabc/cultivate
本篇開源地址:
https://github.com/liuxinfengabc/cultivate/blob/master/2.CASE%E5%B7%A5%E5%85%B7/3.%E5%8F%98%E6%9B%B4%E6%8E%A7%E5%88%B6%E5%B7%A5%E5%85%B7/2.GIT-GITHUB/GitHub%E4%B8%8EGit%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E%E6%96%87%E6%A1%A3.md
本文CSDN地址:https://truedei.blog.csdn.net/article/details/105897950