Git版本控制

一、概念:

Git是用於Linux內核開發的版本控制工具,它採用了分佈式版本庫的做法。不需要服務器端軟件,就可以運作版本控制,使得源代碼的發佈和交流極其方便。

分佈式版本庫:簡單的說就是其內部的一個元件壞掉,不會影響程序的正常進行。其它元件會代替壞掉的元件來完成之前要做的這個事情。


二、Git服務器的搭建:

  • 首先安裝下載Git客戶端軟件(附加)。Git客戶端
  • git服務器的搭建,使用gitblit作爲git服務器。此時要開啓服務器。Git服務器
  • 進入服務器管理平臺,https://localhost:8443。登錄進入,用戶名密碼默認:admin
  • 創建遠程版本倉庫,只書寫名字即可。
    創建好的倉庫
  • 創建用戶。
    創建用戶
  • 給用戶分配權限。
    權限設置

三、Git命令進行項目版本控制

  • 創建本地倉庫,在已有項目的文件夾下,也就是Project下。右鍵鼠標找到Git Bash Here。
    命令行窗口

clear:清理上面信息
git init:初始化本地倉庫。此時項目下會有一個隱藏文件.git 隱藏的.git文件,本地倉庫

git add *:提交本地代碼到暫存區
git commit -m ‘init git’:提交本地代碼到本地倉庫,’init git’填寫的說明
這裏寫圖片描述

git remote add origin https://localhost:8443/r/xuexiku.git:本地倉庫鏈接到遠程倉庫

推送到遠程倉庫了

  • 推送本地倉庫到遠程倉庫

git push origin master:推送本地倉庫到遠程倉庫,這個時候是需要輸入之前設置的用戶名和密碼的

推送本地倉庫到遠程倉庫
此時的遠程倉庫就會有變化了:
提交遠程倉庫的變化

  • 如果這個時候a.txt文件裏面內容發生了變化。開發之後狀態,需要查看當前的狀態

git status:查看當前項目裏面變化情況

狀態的改變

  • 此時a.txt發生了改變,要想繼續推送到遠程倉庫。所以還需要再次把a.txt添加到暫存區,然後再添加到本地倉庫

git commit:會彈出來讓你自己輸入信息

提交暫存和本地

  • 這個時候可以進行推送到遠程服務器了,但是在推送之前要進行拉取一下最新代碼,看是否有衝突

git pull origin master:進行拉取服務器代碼,看是否有衝突

這裏寫圖片描述

  • 此刻,沒有衝突了,再推送到服務器。

git push origin master:進行推送,用不同的人進行提交

再次推送遠程服務器

  • 來新員工了,開始進行克隆。在自己桌面建一個文件夾。在這個文件夾下面,打開命令行工具。

git clone https://@localhost:8443/r/xuexiku.git:從服務器克隆了一份代碼

修改內容

  • 李四開發後,當前狀態肯定是修改狀態,必須在當前項目下打開命令行,纔可以查看狀態,以及提交操作,需要繼續添加到暫存中,再提交到本地。

git status:查看狀態
git add a.txt:添加暫存中
git commit -m ‘lisi update content’:添加到本地中
git pull origin master:拉取服務器最新的
git push origin master:推送最新的到服務器

查看狀態,添加暫存,添加本地,拉取服務器最新的、推送新的

  • 此時張三做一樣的操作,同樣修改了a.txt文件的第三行。

git status:查看狀態
git add a.txt:添加暫存中
git commit -m ‘zhangsan update content’:添加到本地中
git pull origin master:拉取服務器最新的結果衝突了

狀態、暫存、本地、拉取最新的衝突了

  • 這個時候可以用一個命令打開衝突的解決方案。

git mergetool:打開圖形化的合併界面
y:打開

衝突的命令

合併完之後,記得再次提交到暫存,本地,拉取,推送,查看狀態

  • 能夠查看每次提交之後的一個代碼分支樹形結構

gitk –all:查看代碼分支的結構

代碼結構

  • 創建分支,默認有一個master分支,在實際開發過程中,通常會創建一個開發分支,用來進行版本的迭代開發。創建分支之前,一定要保證當前本地內容和遠程內容保持一致。

git branch dev:創建開發分支,dev是分支名稱
git branch:查看分支
git checkout dev:切換分支
git branch:再查看

創建新的分支

  • 在哪個分支下,創建的文件。就在哪個分支下能夠找到

git checkout dev:切換到dev(開發)分支下
ls:查看當前分支下的文件

查看分支下的文件

  • 把創建的分支中的文件,一起推送到遠程倉庫中

git push origin dev:把開發分支推送到遠程倉庫中

推送本地分支到遠程倉庫

  • 此時,其它員工也要在這個分支下進行開發,就需要從遠程倉庫克隆下來了。

git clone https://localhost:8443/r/xuexiku.git:克隆別人上傳有dev的分支的代碼
cd xuexiku/:進到這個項目下
ls:查看當前項目下看是否有dev下添加的文件
git branch:查看當前分支
git checkout -b dev origin/dev:檢索到遠程倉庫中的dev分支
git branch:查看當前分支
ls:查看當前分支下是否有之前別人在dev分支下添加的文件

檢索下dev分支

  • 如果在同時開發過程當中,那麼再有衝突了,繼續解決就行了。解決完後,開發完成。需要合併分支。在合併分支dev-master,首先要切換到master分支中。

git branch:查看當前分支
git checkout master:切換到master分支中
git merge dev:合併dev分支到master分支中
git branch:此時爲合併完成的master分支
ls:查看是否有之前在dev中開發的文件了
git add *:把所有在master分支下的文件添加到暫存中
git commit -m ‘merge dev’:提交到本地倉庫
git push origin master:推送到遠程倉庫中

合併分支dev到master

  • 創建tag,防止代碼的丟失,使用標籤恢復代碼

git tag -a v1.0 -m ‘di yi ge version 1.0’:創建1.0版本的標籤
git tag:查看標籤
git push origin –tags:把tag標籤推送到遠程倉庫中
git log:可以查看每次提交的歷史記錄

創建tag

  • 修復開發中忘記添加常見的忽略文件,一定要在當前master分支下,也就是所謂的沒有忽略的那個文件夾在的分支中

git branch:查看所在的分支
git rm -r –cached build/:移除該分支中,本地文件夾下的文件
git status:查看當前狀態
git add .gitignore:把忽略文件從AS中拷貝到項目下,添加到暫存中
git commit:提交到本地倉庫
git push origin master:推送到遠程倉庫

解決忽略文件沒有添加上

  • 如果使用命令行git出現ssl認證失敗了,可以使用如下命令行解決

git config –global http.sslVerify false:解決ssl問題

解決問題ssl


四、Android Studio進行Git版本控制:

  1. 進行AS版本控制之前一定要指定客戶端的路徑
    As中使用git客戶端路徑
  2. 遠程倉庫創建好放在那裏
    遠程倉庫
  3. 創建本地倉庫
    本地倉庫
  4. 此時代碼會變紅色
    代碼變紅
  5. 添加到暫存區中,忘記了忽略文件
    添加到暫存區
  6. 代碼會變綠色
    代碼變綠色
  7. 添加到本地倉庫,忘記了忽略文件
    添加到本地
  8. 添加到本地時候,不要勾選下面畫線地兩個
    添加到本地不勾選
  9. 添加完之後,顏色變爲正行狀態。此時把該忽略的文件添加到本地了。所以需要通過代碼來進行忽略不該添加的忽略文件。首先在As中項目下打開根路徑,進去項目中。打開命令行工具。把ides/下的東西都刪了。然後把As的.idea放在工程下的.gitignore
    用命令行解決沒忽略的文件
  10. 這個時候可以往服務器進行推送了,將本地倉庫推送到遠程倉庫中。需要給遠程倉庫指定用戶,並設置權限。在推送之前要進行拉取遠程服務器。
    拉取服務器內容
  11. 推送本地倉庫到遠程服務器
    推送本地倉庫到遠程倉庫
  12. 用As可以創建分支
    創建分支
  13. 創建完之後。會自動切換到當前創建的分支,這是在本地創建的開發分支,需要Push到遠程倉庫中
    開發分支
  14. 此時在dev開發下就行開發了,修改開發後。需要add,commit, pull, push
  15. 又來一個新員工了,開始克隆代碼了,就行開發
    進行克隆
  16. 遠程地址一定要對
    遠程克隆
  17. 新圓工一定要在dev和令外一個人在一個開發分支下 進行開發
    切換分支
  18. 如果都在開發,有衝突了。進行merge。先添加服務器的。再添加你的。然後必須在add,commit,pull push
    合併
  19. 打標籤
    打標籤
  20. 具體內容
    具體標籤內容
  21. 推送本地標籤到遠程倉庫
    推送標籤
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章