日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Git的安装与使用

發布時間:2023/11/27 生活经验 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Git的安装与使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、Git簡介:
1、分布式:Git版本控制系統是一個分布式的系統,是用來保存工程源代碼歷史狀態的命令行工具。

2、保存點:Git的保存點可以追蹤源碼中的文件, 并能得到某一個時間點上的整個工程項目的狀態;可以在該保存點將多人提交的源碼合并, 也可以回退到某一個保存點上。

3、Git離線操作性:Git可以離線進行代碼提交,因此它稱得上是完全的分布式處理,Git所有的操作不需要在線進行;這意味著Git的速度要比SVN等工具快得多,因為SVN等工具需要在線時才能操作,如果網絡環境不好, 提交代碼會變得非常緩慢。

4、Git基于快照:SVN等老式版本控制工具是將提交點保存成補丁文件,Git提交是將提交點指向提交時的項目快照,提交的東西包含一些元數據(作者,日期,GPG等)。

5、Git的分支和合并:分支模型是Git最顯著的特點,因為這改變了開發者的開發模式,SVN等版本控制工具將每個分支都要放在不同的目錄中,Git可以在同一個目錄中切換不同的分支。

6、分支即時性:創建和切換分支幾乎是同時進行的,用戶可以上傳一部分分支,另外一部分分支可以隱藏在本地,不必將所有的分支都上傳到GitHub中去。

7、分支靈活性:用戶可以隨時創建、合并、刪除分支,多人實現不同的功能,可以創建多個分支進行開發,之后進行分支合并,這種方式使開發變得快速、簡單、安全

另外Git和SVN的主要區別:
SVN是集中式版本控制系統,版本庫是集中放在中央服務器的,而干活的時候,用的都是自己的電腦,所以首先要從中央服務器那里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服務器。集中式版本控制系統是必須聯網才能工作,如果在局域網還可以,帶寬夠大,速度夠快,如果在互聯網下,如果網速慢的話,就非常慢了。
 Git是分布式版本控制系統,那么它就沒有中央服務器的,每個人的電腦就是一個完整的版本庫,這樣,工作的時候就不需要聯網了,因為版本都是在自己的電腦上。既然每個人的電腦都有一個完整的版本庫,那多個人如何協作呢?比如說自己在電腦上改了文件A,其他人也在電腦上改了文件A,這時,你們兩之間只需把各自的修改推送給對方,就可以互相看到對方的修改了

二、Git下載地址、安裝及配置教程:
https://blog.csdn.net/zx1996119/article/details/80814752

三、利用Git創建版本庫
版本庫又名倉庫,英文名repository,你可以簡單的理解一個目錄,這個目錄里面的所有文件都可以被Git管理起來,每個文件的修改,刪除,Git都能跟蹤,以便任何時刻都可以追蹤歷史,或者在將來某個時刻還可以將文件還原。

1,首先,選擇一個合適的路徑(我選擇了D盤,我的電腦是Win 7),常見一個空目錄

$ cd D:                //打開路徑
$ cd Repository        //打開路徑下的文件夾
$ mkdir testGit        //在Repository文件夾下的創建testGit 文件夾
$ pwd                  //顯示當前的路徑
/d/Repository/testGit 

2,通過git init命令把這個目錄變成Git可以管理的倉庫:

$ git init
Initialized empty Git repository in d:Repository/testGit /.git

這時候你當前testGit目錄下會多了一個.git的目錄,這個目錄是Git來跟蹤管理版本的,沒事千萬不要手動亂改這個目錄里面的文件,否則,會把git倉庫給破壞了(.git目錄為隱藏文件),這樣就創建了你的Git倉庫。
3,把文件添加到版本庫中
首先要明確下,所有的版本控制系統,只能跟蹤文本文件的改動,比如txt文件,網頁,所有程序的代碼等,Git也不列外,版本控制系統可以告訴你每次的改動,但是圖片,視頻這些二進制文件,雖能也能由版本控制系統管理,但沒法跟蹤文件的變化,只能把二進制文件每次改動串起來,也就是知道圖片從1kb變成2kb,但是到底改了啥,版本控制也不知道。
(1) 在版本庫testGit目錄下新建一個記事本文件 readme.txt ,使用git add將文件添加到倉庫:

$ git add readme.txt

(2)使用git commit將文件提交到倉庫:

git commit -m "wrote a readme file" //注:git commit命令,-m后面輸入的是本次提交的說明,可以輸入任意內容,當然最好是有意義的,這樣你就能從歷史記錄里方便地找到改動記錄

(3)可以通過命令git status來查看是否還有文件未提交:

說明沒有任何文件未提交
(4)如果修改readme.txt內容,可繼續使用git status來查看下結果,如下:
上面的命令告訴我們 readme.txt文件已被修改,但是未被提交的修改。接下來可以使用git diff readme.txt 命令看下readme.txt文件到底改了什么內容,知道了對readme.txt文件做了什么修改后,我們可以放心的提交到倉庫了,提交修改和提交文件是一樣的2步(第一步是git add 第二步是:git commit,如上所述)
3,版本回退
已經對readme.txt文件做了修改,那么可以使用命令 git log 查看修改的歷史記錄。

注:最后你可能會碰到這個(END),此后你怎么點都沒有用。那么現在你要輸入:wq或:q退出。這個命令同linux指令

git log命令顯示從最近到最遠的顯示日志,我們可以看到最近兩次次提交,如果嫌顯示的信息太多的話,我們可以使用命令 git log –pretty=oneline

使用版本回退操作,想把當前的版本回退到上一個版本,可以使用如下2種命令,第一種是:git reset --hard HEAD^ 那么如果要回退到上上個版本只需把HEAD^ 改成 HEAD^^ 以此類推。那如果要回退到前100個版本的話,使用上面的方法肯定不方便,我們可以使用下面的簡便命令操作:git reset --hard HEAD~100 即可。

回退之后可通過命令cat readme.txt再來查看下 readme.txt內容,另外我們可以繼續使用git log 來查看下歷史記錄信息

我們可以通過版本號回退,使用命令方法如下:
git reset --hard 版本號
可以通過git reflog命令即可獲取到版本號

$ git reflog
ea34578 HEAD@{0}: reset: moving to HEAD^
3628164 HEAD@{1}: commit: append GPL
ea34578 HEAD@{2}: commit: add distributed
cb926e7 HEAD@{3}: commit (initial): wrote a readme file

前面的數字是commit id。知道commit id可以回退上一次執行的命令,回退命令為git reset --hard :
四:理解工作區與暫存區的區別
工作區:就是你在電腦上看到的目錄,比如目錄下testGit里的文件(.git隱藏目錄版本庫除外)。或者以后需要再新建的目錄文件等等都屬于工作區范疇。

版本庫(Repository):工作區有一個隱藏目錄.git,這個不屬于工作區,這是版本庫。其中版本庫里面存了很多東西,其中最重要的就是stage(暫存區),還有Git為我們自動創建了第一個分支master,以及指向master的一個指針HEAD。

我們前面說過使用Git提交文件到版本庫有兩步:

第一步:是使用 git add 把文件添加進去,實際上就是把文件添加到暫存區。

第二步:使用git commit提交更改,實際上就是把暫存區的所有內容提交到當前分支上。

五、Git撤銷修改和刪除文件操作
1,首先在做撤銷之前,可以先用 git status 查看下當前的狀態。
在未提交之前,我發現內容有誤,所以得馬上恢復以前的版本,現在可以有如下幾種方法可以做修改:

第一:如果我知道要刪掉那些內容的話,直接手動更改去掉那些需要的文件,然后add添加到暫存區,最后commit掉。

第二:我可以按以前的方法直接恢復到上一個版本。使用 git reset --hard HEAD^
  第三:命令 git checkout --readme.txt 意思就是,把readme.txt文件在工作區做的修改全部撤銷,這里有2種情況,如下:
   readme.txt自動修改后,還沒有放到暫存區,使用 撤銷修改就回到和版本庫一模一樣的狀態。
另外一種是readme.txt已經放入暫存區了,接著又作了修改,撤銷修改就回到添加暫存區后的狀態。

注意:命令git checkout -- readme.txt 中的 -- 很重要,如果沒有 -- 的話,那么命令變成創建分支了

2,一般情況下,可以直接在文件目錄中把文件刪了,或者使用命令rm xx ,如果想徹底從版本庫中刪掉了此文件的話,可以再執行commit命令 提交掉; 只要沒有commit之前,如果想在版本庫中恢復此文件可以使用命令 git checkout – xx
六、創建遠程創庫
1, 先注冊github賬號,由于你的本地Git倉庫和github倉庫之間的傳輸是通過SSH加密的,所以需要一點設置:
  第一步:創建SSH Key。在用戶主目錄下,看看有沒有.ssh目錄,如果有,再看看這個目錄下有沒有id_rsa和id_rsa.pub這兩個文件,如果有的話,直接跳過此如下命令
  id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰,可以放心地告訴任何人。
  如果沒有的話,打開命令行,輸入如下命令:

ssh-keygen  -t rsa –C “youremail@example.com”, 

詳見:https://blog.csdn.net/happystarycy/article/details/52490183
第二步:登錄github,打開” settings”中的SSH Keys頁面,然后點擊“Add SSH Key”,填上任意title,在Key文本框里黏貼id_rsa.pub文件的內容。
,2,添加遠程庫

現在的情景是:我們已經在本地創建了一個Git倉庫后,又想在github創建一個Git倉庫,并且希望這兩個倉庫進行遠程同步,這樣github的倉庫可以作為備份,又可以其他人通過該倉庫來協作。

首先,登錄github上,然后在右上角找到“create a new repo”創建一個新的倉庫。如下:


在Repository name填入testgit,其他保持默認設置,點擊“Create repository”按鈕,就成功地創建了一個新的Git倉庫:
現在,我們根據GitHub的提示,在本地的testgit倉庫下運行命令:

git remote add origin https://github.com/賬戶名/testGit.git

把本地庫的內容推送到遠程,使用 git push命令,實際上是把當前分支master推送到遠程。

git push -u origin master

由于遠程庫是空的,我們第一次推送master分支時,加上了 –u參數,Git不但會把本地的master分支內容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關聯起來,在以后的推送或者拉取時就可以簡化命令。推送成功后,可以立刻在github頁面中看到遠程庫的內容已經和本地一模一樣了,上面的要輸入github的用戶名和密碼。
從現在起,只要本地作了提交,就可以通過如下命令:

git push origin master

把本地master分支的最新修改推送到github上了,現在你就擁有了真正的分布式版本庫了。
3,從遠程庫克隆到本地創庫
  首先,登錄github,創建一個新的倉庫,名字叫testgit2.如下:
  
現在,遠程庫已經準備好了,下一步是使用命令git clone克隆一個本地庫了

git clone https://github.com/賬戶名/testgit2

接著在本地目錄下 生成testgit2目錄了
七、創建與合并分支
1, 在版本回填退里,你已經知道,每次提交,Git都把它們串成一條時間線,這條時間線就是一個分支。截止到目前,只有一條時間線,在Git里,這個分支叫主分支,即master分支。HEAD嚴格來說不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是當前分支。
git checkout 命令加上 –b參數表示創建并切換,常用的命令如下:

   查看分支:git branch創建分支:git branch name切換分支:git checkout name創建+切換分支:git checkout –b name合并某分支到當前分支:git merge name刪除分支:git branch –d name

,2,分支管理策略:通常合并分支時,git一般使用”Fast forward”模式,在這種模式下,刪除分支后,會丟掉分支信息,現在使用帶參數 –no-ff來禁用”Fast forward”模式

創建一個dev分支。修改readme.txt內容。添加到暫存區。切換回主分支(master)。合并dev分支,使用命令 git merge –no-ff  -m “注釋” dev查看歷史記錄

分支策略:首先master主分支應該是非常穩定的,也就是用來發布新版本,一般情況下不允許在上面干活,干活一般情況下在新建的dev分支上干活,干完后,比如上要發布,或者說dev分支代碼穩定后可以合并到主分支master上來。
八、bug分支
在開發中,會經常碰到bug問題,那么有了bug就需要修復,在Git中,分支是很強大的,每個bug都可以通過一個臨時分支來修復,修復完成后,合并分支,然后將臨時的分支刪除掉
當工作進行到一半時候,我們還無法提交,比如一個分支bug要2天完成,但是我issue-404 bug需要5個小時內完成。怎么辦呢?Git還提供了一個stash功能,可以把當前工作現場 ”隱藏起來”,等以后恢復現場后繼續工作。
所以現在我可以通過創建issue-404分支來修復bug了。首先我們要確定在那個分支上修復bug,比如我現在是在主分支master上來修復的,現在我要在master分支上創建一個臨時分支, 修復完成后,切換到master分支上,并完成合并,最后刪除issue-404分支。
現在,我們回到dev分支上干活了。

工作區是干凈的,我們可以使用命令 git stash list來查看。工作現場還在,Git把stash內容存在某個地方了,但是需要恢復一下,可以使用如下2個方法:
git stash apply恢復,恢復后,stash內容并不刪除,你需要使用命令git stash drop來刪除。
另一種方式是使用git stash pop,恢復的同時把stash內容也刪除了
九、多人協作
當從遠程庫克隆時候,實際上Git自動把本地的master分支和遠程的master分支對應起來了,并且遠程庫的默認名稱是origin

要查看遠程庫的信息 : git remote要查看遠程庫的詳細信息 : git remote –v

一:推送分支:

推送分支就是把該分支上所有本地提交到遠程庫中,推送時,要指定本地分支,這樣,Git就會把該分支推送到遠程庫對應的遠程分支上:

  git push origin master

如果我們現在要推送到其他分支,比如dev分支上,我們還是那個命令:

git push origin dev

那么一般情況下,那些分支要推送呢?

master分支是主分支,因此要時刻與遠程同步。 一些修復bug分支不需要推送到遠程去,可以先合并到主分支上,然后把主分支master推送到遠程去。

二:抓取分支:
多人協作時,大家都會往master分支上推送各自的修改。現在我們可以模擬另外一個同事,可以在另一臺電腦上(注意要把SSH key添加到github上)或者同一臺電腦上另外一個目錄克隆,新建一個目錄名字叫testgit2

先要把dev分支也要推送到遠程去;

接著進入testgit2目錄,進行克隆遠程的庫到本地來;
現在我們要在dev分支上做開發,就必須把遠程的origin的dev分支到本地來,于是可以使用命令創建本地dev分支:git checkout –b dev origin/dev
現在就可以在dev分支上做開發了,開發完成后把dev分支推送到遠程庫時。
小伙伴們已經向origin/dev分支上推送了提交,而我在我的目錄文件下也對同樣的文件同個地方作了修改,也試圖推送到遠程庫時,如下:
由上面可知:推送失敗,因為我的小伙伴最新提交的和我試圖推送的有沖突,解決的辦法也很簡單,上面已經提示我們,先用git pull把最新的提交從origin/dev抓下來,然后在本地合并,解決沖突,再推送。
git pull也失敗了,原因是沒有指定本地dev分支與遠程origin/dev分支的鏈接,根據提示,設置dev和origin/dev的鏈接
這回git pull成功,但是合并有沖突,需要手動解決,解決的方法和分支管理中的 解決沖突完全一樣。解決后,提交,再push
因此:多人協作工作模式一般是這樣的:

首先,可以試圖用git push origin branch-name推送自己的修改.
如果推送失敗,則因為遠程分支比你的本地更新早,需要先用git pull試圖合并。
如果合并有沖突,則需要解決沖突,并在本地提交。再用git push origin branch-name推送。

十、Git基本常用命令如下:

  mkdir:         XX (創建一個空目錄 XX指目錄名)pwd:          顯示當前目錄的路徑。git init          把當前的目錄變成可以管理的git倉庫,生成隱藏.git文件。git add XX       把xx文件添加到暫存區去。git commit –m “XX”  提交文件 –m 后面的是注釋。git status        查看倉庫狀態git diff  XX      查看XX文件修改了那些內容git log          查看歷史記錄git reset  --hard HEAD^ 或者 git reset  --hard HEAD~ 回退到上一個版本(如果想回退到100個版本,使用git reset –hard HEAD~100 )cat XX         查看XX文件內容git reflog       查看歷史記錄的版本號idgit checkout -- XX  把XX文件在工作區的修改全部撤銷。git rm XX          刪除XX文件git remote add origin https://github.com/tugenhua0707/testgit 關聯一個遠程庫git push –u(第一次要用-u 以后不需要) origin master 把當前master分支推送到遠程庫git clone https://github.com/tugenhua0707/testgit  從遠程庫中克隆git checkout –b dev  創建dev分支 并切換到dev分支上git branch  查看當前所有的分支git checkout master 切換回master分支git merge dev    在當前的分支上合并dev分支git branch –d dev 刪除dev分支git branch name  創建分支git stash 把當前的工作隱藏起來 等以后恢復現場后繼續工作git stash list 查看所有被隱藏的文件列表git stash apply 恢復被隱藏的文件,但是內容不刪除git stash drop 刪除文件git stash pop 恢復文件的同時 也刪除文件git remote 查看遠程庫的信息git remote –v 查看遠程庫的詳細信息git push origin master  Git會把master分支推送到遠程庫對應的遠程分支上

總結

以上是生活随笔為你收集整理的Git的安装与使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。