Windows下GIT的使用方法

来源:https://www.cnblogs.com/tarenacode/archive/2019/07/15/11191091.html
-Advertisement-
Play Games

文章引用自:Git使用教程 https://www.cnblogs.com/tugenhua0707/p/4050072.html 本文章只限用於Windows,敬請參考 註意:操作命令純屬手敲,可能會有錯誤,錯誤後參考文章鏈接! Git下載地址:https://gitforwindows.org/ ...


文章引用自:Git使用教程    https://www.cnblogs.com/tugenhua0707/p/4050072.html

本文章只限用於Windows,敬請參考

註意:操作命令純屬手敲,可能會有錯誤,錯誤後參考文章鏈接!

Git下載地址https://gitforwindows.org/  # Windows版本

安裝方式:一頓操作猛如虎,一看全是下一步。煩請移步百度。

安裝完成後打開 Git Bash (打不開百度)

一、初步打開Git Bash:

因為Git是分散式版本控制系統,所以需要填寫用戶名和郵箱作為一個標識。

填寫用戶名: git config --global user.name "這裡填寫您的用戶名"

填寫郵箱:git config --global user.email "這裡填寫您的郵箱"

二、創建版本庫(倉庫):

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

1、進入目錄

首先進入您的倉庫目錄:cd E:\code\testgit

輸入pwd命令可以查看當前的目錄

2、把目錄變成Git可以管理的倉庫

改變倉庫屬性: git init 

這時候你當前testgit目錄下會多了一個.git的目錄,這個目錄是Git來跟蹤管理版本的,沒事千萬不要手動亂改這個目錄裡面的文件,否則,會把git倉庫給破壞了。

3、倉庫操作命令:

    把文件添加到暫存區: git add 您的文件(包括文件後輟名)

    把文件提交到倉庫: git commit -m “您的文件(這個地方是提交文件的註釋)”

    查看未提交文件: git status

    查看文件修改的具體內容: git diff 您的文件(包括文件後輟名)

一次性把所有暫存庫的文件提交到倉庫: git commit

三、版本回退

1、查看文件操作日誌

查看文件詳細的操作日誌: git log

查看文件簡明的操作日誌: git log --pretty=oneline

2、文件版本回退操作

當前版本回退到上一個版本: git reset --hard HEAD^

當前版本回退到上上一個版本: git reset --hard HEAD^^

當前版本回退到指定n版本: git reset --hard HEAD~n

回退到上一個版本後後悔了,想返回原來最後一次的版本,可以通過版本號回退:

獲取版本號: git reflog

       版本回退: git reset --hard 版本號(最前面的字元)

四、工作區與暫存區的區別

   工作區:就是你在電腦上看到的目錄,比如目錄下testgit里的文件(.git隱藏目錄版本庫除外)。或者以後需要再新建的目錄文件等等都屬於工作區範疇。

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

baGit提交文件到版本庫有兩步:

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

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

五、Git撤銷修改和刪除文件操作

1、撤銷修改

工作區做的修改全部撤銷: git checkout -- 您的文件(包括文件後輟名)

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

命令 git checkout -- readme.txt 意思就是,把readme.txt文件在工作區做的修改全部撤銷, 這裡有2種情況,如下:

readme.txt自動修改後,還沒有放到暫存區,使用 撤銷修改就回到和版本庫一模一樣的狀態。

另外一種是readme.txt已經放入暫存區了,接著又作了修改,撤銷修改就回到添加暫存區後的狀態。

2、刪除文件

直接在文件庫刪除文件或者使用如下命令

刪除命令: rm 您的文件(包括文件後輟名)

在沒上傳到倉庫之前可以使用上面的撤銷修改命令再把刪除的文件恢復回來

六、 遠程倉庫

 在瞭解之前,先註冊github賬號,由於你的本地Git倉庫和github倉庫之間的傳輸是通過SSH加密的,所以需要一點設置:

1、 創建SSH key

在用戶主目錄下,看看有沒有 .ssh目錄,如果有,再看看這個目錄下有沒有 id_rsaid_rsa.pub 這兩個文件id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰,可以放心地告訴任何人。),如果有的話,直接跳過此如下命令,如果沒有的話,打開命令行,輸入如下命令:

ssh-keygen  -t rsa C “您的郵箱”

2、添加key

    登錄github,打開右上角的齒輪按鈕“settings”中左側列表的SSH Keys,然後點擊“Add SSH Key”,填上任意title(標題),在Key文本框里黏貼“id_rsa.pub”文件的內容。

點擊綠色按鈕“Add Key”就可以看到添加完成的key。

3、如何添加遠程庫

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

首先登錄github,然後右上角的“加”的符號“create a new repo”創建一個新的倉庫。

Repository name填入“您的倉庫名稱”,其他保持預設設置,點擊綠色按鈕“Create repository”按鈕,就成功地創建了一個新的Git倉庫:

目前,在GitHub上的這個testgit倉庫還是空的,GitHub告訴我們,可以從這個倉庫克隆出新的倉庫,也可以把一個已有的本地倉庫與之關聯,然後,把本地倉庫的內容推送到GitHub倉庫。

現在,我們根據GitHub的提示,在本地的testgit倉庫下運行命令: 

git remote add origin https://github.com/tugenhua0707/testgit.git(後面這個網址要用自己的)          # 克隆遠程倉庫內容

推送本地到遠程:git push -u origin master

由於遠程庫是空的,我們第一次推送master分支時,加上了 –u參數,Git不但會把本地的master分支內容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關聯起來,在以後的推送或者拉取時就可以簡化命令。推送成功後,可以立刻在github頁面中看到遠程庫的內容已經和本地一模一樣了。

從現在起,只要本地做了提交,就可以通過如下命令:

git push origin master

把本地master分支的最新修改推送到github上了,現在就擁有了真正的分散式版本庫了。

4、如何從遠程庫克隆?

上面我們瞭解了先有本地庫,後有遠程庫時候,如何關聯遠程庫。

  現在我們想,假如遠程庫有新的內容了,我想克隆到本地來 如何克隆呢?

  首先,登錄github,創建一個新的倉庫,名字叫testgit2。

遠程庫準備好了,下一步就是使用命令git clone克隆一個本地倉庫了。

git clone 你的github地址

接著在本地目錄下就會生成testgit2 目錄了

七、創建與合併分支

在  版本回填退里,你已經知道,每次提交,Git都把它們串成一條時間線,這條時間線就是一個分支。截止到目前,只有一條時間線,在Git里,這個分支叫主分支,即master分支。HEAD嚴格來說不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是當前分支。

首先,我們來創建dev分支,然後切換到dev分支上。如下操作:

 get checkout -b dev      # 創建並切換分支

git branch                # 查看當前分支

git checkout 命令加上 –b參數表示創建並切換,相當於如下2條命令

get checkout master(主分支)   # 切換回主分支

git merge dev                     # 在主分支上合併dev分支

      git branch -d dev               # 刪除dev分支

      git log                           # 查看分支情況

總結創建與合併分支命令如下:

   查看分支:git branch

   創建分支:git branch name

   切換分支:git checkout name

創建+切換分支:git checkout –b name

合併某分支到當前分支:git merge name

刪除分支:git branch –d name

主次分支內容衝突解決辦法:

Git用<<<<<<<,=======,>>>>>>>標記出不同分支的內容,其中<<<HEAD是指主分支修改的內容,>>>>>fenzhi1 是指fenzhi1上修改的內容,修改分支內容和主分支內容一致即可解決

分支管理策略。

通常合併分支時,git一般使用”Fast forward”模式,在這種模式下,刪除分支後,會丟掉分支信息,現在我們來使用帶參數 –no-ff來禁用”Fast forward”模式。

命令:

       在主目錄下合併分支目錄:

git merge no-ff  -m 本次命令做的事情註釋 dev

分支策略:首先master主分支應該是非常穩定的,也就是用來發佈新版本,一般情況下不允許在上面幹活,幹活一般情況下在新建的dev分支上幹活,幹完後,比如上要發佈,或者說dev分支代碼穩定後可以合併到主分支master上來。

八、BUG分支解決辦法

  在開發中,會經常碰到bug問題,那麼有了bug就需要修複,在Git中,分支是很強大的,每個bug都可以通過一個臨時分支來修複,修複完成後,合併分支,然後將臨時的分支刪除掉。

 git stash         #把當前工作分區先隱藏

在主目錄新建進入臨時分支,查看並更改需要修改的代碼後,切換回主分支合併臨時分支,合併確認完成後,在進入之前的工作分支。

進入工作區後恢復之前隱藏的工作分區內容。

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  # 要查看遠程庫的詳細信息

其中查看遠程庫的詳細信息後會有兩條推送信息,結尾括弧內的fetch為抓取,就是下載;push為推送,就是把本地推送到遠程

1、 推送分支

git push origin master       # 本地主分支推送到遠程倉庫

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

master分支是主分支,因此要時刻與遠程同步。

一些修複bug分支不需要推送到遠程去,可以先合併到主分支上,然後把主分支master推送到遠程去。

2、 抓取分支

這個看原文章


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 抽象類、介面與類是一個層次的概念,是C#中極其重要的概念。 抽象類是從多個類中抽象出來的公共模版,提供子類均具有的功能。介面是從多個類中抽象出來的規範,體現的是規範和實現分離的原則,同時也有效的彌補了C#繼承單根性的不足。深入理解抽象類和介面在設計理念上的差別,才能夠正確的選擇抽象類或介面來進行開發 ...
  • 1、背景 我:雖然通過繼承減少了代碼冗餘,但是,每一個子類的構造函數還是需要給所有屬性賦值的,很麻煩的。 師:這個好辦,用base就行啦。 我:貝司?還吉他呢! 師:別急,首先我們先介紹下實例化子類對象的時候調用父類構造函數。 運行結果: 從上面代碼分析可知: (1)執行 ChildClass ch ...
  • (GNU Wget) 快速瀏覽(單HTML文件):(GNU Wget 線上手冊) Wget 1.20.3(目前最新) 下載地址:(win32 )https://eternallybored.org/misc/wget/1.20.3/32/wget.exe (win64 )https://eterna ...
  • Linux軟體安裝——安裝軟體的命令 摘要:本文主要學習瞭如何在Linux系統中安裝、更新、卸載軟體。 rpm命令 rpm命令用來在Linux系統上進行軟體的安裝。 基本語法 安裝命令: 如果沒有安裝則安裝,如果已經安裝則升級: 如果沒有安裝則不安裝,如果已經安裝則升級: 卸載命令: 查詢安裝信息: ...
  • 每天使用Linux每天都要接觸到Bash,使用Bash時似乎永遠都讓人摸不著頭腦的概念就是終端,坐在這台運行著Linux的機器的顯示器前面,這個顯示器就是終端的輸出,而插在機器上的USB鍵盤或者PS/2鍵盤就是終端的輸入,看來這是一種最直白意義上關於終端的解釋。 但是有的時候,機器上並沒有看到顯示器 ...
  • Linux基本目錄結構如下: >>>/bin [重點] /user/bin /user/local/bin 是binary的縮寫,存放經常使用的指令 >>>/sbin /user/sbin /user/local/sbin s是super user的意思,存放的是系統管理員使用的系統管理程式 >>> ...
  • [TOC] 官方網站 http://jumpserver.org Jumpserver 軟體包環境要求: Python = 3.6.x Mysql Server ≥ 5.6 Mariadb Server ≥ 5.5.56 Redis 生產環境部署建議部署 1.4.8 版本 環境 jumpserver ...
  • 使用apt-get的時候發現ubuntu和阿裡雲均已經不提供該版本的源,所以需要找到其他的替代源。 使用的ubuntu版本是14.10,屬於非LTS(長期支持版本),因此前一段時間還可以使用apt-get update來更新源,現在已提示更新失敗,無法下載,無法訪問了。現提供一種解決思路供大家參考。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...