Git很簡單--圖解攻略

Git

  • Git 是目前世界上最先進的分布式版本控制系統(沒有之一)

作用

  • 源代碼管理

為什么要進行源代碼管理?

  • 方便多人協同開發
  • 方便版本控制

Git管理源代碼特點

  • 1.Git是分布式管理.服務器和客戶端都有版本控制能力,都能進行代碼的提交、合并、.

  • ?

2.Git會在根目錄下創建一個.git隱藏文件夾,作為本地代碼倉庫

Git操作流程圖解

工作區暫存區和倉庫區

?

工作區

  • 對于添加修改刪除文件的操作,都發生在工作區中

暫存區

  • 暫存區指將工作區中的操作完成小階段的存儲,是版本庫的一部分

倉庫區

  • 倉庫區表示個人開發的一個小階段的完成
    • 倉庫區中記錄的各版本是可以查看并回退的
    • 但是在暫存區的版本一旦提交就再也沒有了

?

Git單人本地倉庫操作

?

? ? ? 1 .安裝git

       sudo apt-get install git

  • 2.查看git安裝結果

      git
    
  • 3.創建項目

    • 在桌面創建test文件夾,表示是工作項目

        Desktop/test/
      
  • 4.創建本地倉庫

    • 進入到test,并創建本地倉庫.git
    • 新創建的本地倉庫.git是個空倉庫

        cd Desktop/test/git init

? ? ? ?5.配置個人信息

    git config user.name '張三'git config user.email 'zhangsan@163.com'

    默認不配置的話,會使用全局配置里面的用戶名和郵箱 全局git配置文件路徑:~/.gitconfig

? ? ? 6.新建py文件

  • ?在項目文件test里面創建login.py文件,用于版本控制演示

7.查看文件狀態

  • 紅色表示新建文件或者新修改的文件,都在工作區.
  • 綠色表示文件在暫存區
  • 新建的login.py文件在工作區,需要添加到暫存區并提交到倉庫區

    git status
  • 8.將工作區文件添加到暫存區
  •   # 添加項目中所有文件git add .或者# 添加指定文件git add login.py
  • 9.將暫存區文件提交到倉庫區

    • commit會生成一條版本記錄
    • -m后面是版本描述信息

      git commit -m '版本描述'

10.接下來就可以在login.py文件中編輯代碼

  • 代碼編輯完成后即可進行addcommit操作
  • 提示:添加和提交合并命令

      git commit -am "版本描述"

11.查看歷史版本

  git log或者git reflog

git reflog 可以查看所有分支的所有操作記錄(包括commit和reset的操作),包括已經被刪除的commit記錄,git log 則不能察看已經刪除了的commit記錄

12.回退版本

  • 方案一:

    • HEAD表示當前最新版本
    • HEAD^表示當前最新版本的前一個版本
    • HEAD^^表示當前最新版本的前兩個版本,以此類推...
    • HEAD~1表示當前最新版本的前一個版本
    • HEAD~10表示當前最新版本的前10個版本,以此類推...

      git reset --hard HEAD^

?

方案二:當版本非常多時可選擇的方案

  • 通過每個版本的版本號回退到指定版本

      git reset --hard 版本號

13.撤銷修改

  • 只能撤銷工作區、暫存區的代碼,不能撤銷倉庫區的代碼
  • 撤銷倉庫區的代碼就相當于回退版本操作

    • 撤銷工作區代碼

      • 新加代碼num3 = 30,不add到暫存區,保留在工作區

        git checkout 文件名

?

撤銷暫存區代碼

  • 新加代碼num3 = 30,并add到暫存區

    # 第一步:將暫存區代碼撤銷到工作區
    git reset HEAD  文件名
    # 第二步:撤銷工作區代碼
    git checkout 文件名

14.對比版本

  • 對比版本庫與工作區

    • 新加代碼num3 = 30,不add到暫存區,保留在工作區
    • git diff HEAD -- login.py

對比版本庫

  • 新加代碼num3 = 30,并add到暫存區
  • git diff HEAD HEAD^ -- login.py

15.刪除文件:刪除文件分為確定刪除和誤刪

  • 在項目中新建test.py文件,并添加和提交到倉庫

    • 確定刪除處理:

        # 刪除文件rm 文件名# git確定刪除文件,對比添加文件git add git rm 文件名# 刪除后記錄刪除操作版本git commit -m '刪除描述'
    • 誤刪處理:撤銷修改即可

        # 刪除文件rm 文件名# git撤銷修改git checkout -- 文件名

      Git遠程倉庫Github

      • 要使用git命令操作倉庫,需要進入到倉庫內部
      • 要同步服務器代碼就執行:git pull
      • 本地倉庫記錄版本就執行:git commit -am '版本描述'
      • 推送代碼到服務器就執行:git push
      • 編輯代碼前要先pull,編輯完再commit,最后推送是push

      代碼沖突

      • 提示:多人協同開發時,避免不了會出現代碼沖突的情況
      • 原因:多人同時修改了同一個文件
      • 危害:會影響正常的開發進度
      • 注意:一旦出現代碼沖突,必須先解決再做后續開發
        • 3.解決沖突

          • 原則:誰沖突誰解決,并且一定要協商解決
          • 方案:保留所有代碼 或者 保留某一人代碼
          • 解決完沖突代碼后,依然需要addcommitpush

          標簽

          • 當某一個大版本完成之后,需要打一個標簽
          • 作用:

            • 記錄大版本
            • 備份大版本代碼

          補充:刪除本地和遠程標簽

            # 刪除本地標簽git tag -d 標簽名# 刪除遠程倉庫標簽git push origin --delete tag 標簽名
        • 分支

          • 作用:
            • 區分生產環境代碼以及開發環境代碼
            • 研究新的功能或者攻關難題
            • 解決線上bug
          • 特點:
            • 項目開發中公用分支包括master、dev
            • 分支master是默認分支,用于發布,當需要發布時將dev分支合并到master分支
            • 分支dev是用于開發的分支,開發完階段性的代碼后,需要合并到master分支

轉載于:https://www.cnblogs.com/zqlboke/p/9079936.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/250247.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/250247.shtml
英文地址,請注明出處:http://en.pswp.cn/news/250247.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

css --- 使用scss生成常用的基本css樣式

"工具樣式"的概念和 SASS(SCSS) 在webpack中使用sass 安裝sass和sass-loader $ npm i sass sass-loader由于使用了腳手架,安裝完畢后重啟前端即可 樣式重置 其實就是樣式的初始化 // reset* {box-sizing: border-box; // 以邊框為準. css3盒模型outline: none;…

vc/vs開發的應用程序添加dump崩潰日志轉

原貼地址:https://blog.csdn.net/wangkui1331/article/details/78029940 vc/vs開發的應用程序出現崩潰的時候,由于沒有任何記錄,導致開發人員很難追蹤,但是添加dump文件后,就可以免除這些煩惱 1.添加方法 (…

51 nod 1127最短的包含字符串(尺取法)

1127 最短的包含字符串 收藏關注給出一個字符串,求該字符串的一個子串S,S包含A-Z中的全部字母,并且S是所有符合條件的子串中最短的,輸出S的長度。如果給出的字符串中并不包括A-Z中的全部字母,則輸出No Solution。Input…

Java --- 基礎學習Ⅰ

第一章 開發前言 位、字節 位(bit): 一個數字0或一個數字1,代表一位 字節(Byte): 每逢8位是一個字節,這時數據存儲的最小單位 1 Byte 8 bit 1 KB 1024 Byte 1 MB 1024 KB 1 GB 1024 MB 1 TB 1024 GB 1 PB 1024 TB MS-DOS(Microsoft Disk Operating System) 第二章 Ja…

JSON 數據重復 出現$ref

JSONArray 類型 如果我們往里面add數據的時候 如果數據相同,那么就會被替換成 $ref: 也就是被簡化了 因為數據一樣所直接 指向上一條數據 循環引用:當一個對象包含另一個對象時,fastjson就會把該對象解析成引用。引用是通過$ref標示的&am…

Java --- 基礎學習Ⅱ

繼承 繼承概述 下面有一個學生類 public class Student{private String name;private int age;public void study(){System.out.println("努力學習了");}public String getName() {return name;}public void setName(String name) {this.name name;}public int g…

urllib庫

python內置的最基本的HTTP請求庫,有以下四個模塊: urllib.request  請求模塊 urllib.error    異常處理模塊 urllib.parse   url解析模塊 urllib.robotparser robots.txt解析模塊 urllib.request請求模塊: urllib.request.urlopen(u…

layer的刪除詢問框的使用

刪除是個很需要謹慎的操作 我們需要進行確認 對了刪除一般使用ajax操作 因為如果同url請求 處理 再返回 會有空白頁 1.js自帶的樣式 <button type"button" data-toggle"tooltip" title"刪除" class"btn btn-danger pull-right btn-xs&qu…

文獻筆記(八)

一、基本信息 標題&#xff1a;MySQL數據庫在自動測試系統中的應用 時間&#xff1a;2017 出版源&#xff1a;寧夏職業技術學院 領域分類&#xff1a;無線互聯科技 二、研究背景 問題定義&#xff1a;文章介紹了MySQL數據庫的特點&#xff0c;結合自動測試系統運行中的實際&…

Java --- 常用API

常用API 方法重載: 方法名相同,方法接收的參數不同 static: 修飾的類,可以直接使用類名進行調用 方法名說明public static abs(int a)返回參數的絕對值public static double ceil(double a)返回大于或等于public static double floor(double a)返回小于或等于參數的最大doubl…

9. 彈出鍵盤擋住input

1.) react 中 <input className"inp3" placeholder"密碼" type"password" onChange{this.changepassword.bind(this)} onFocus{this.FocusFN.bind(this)} value{this.state.paswword}/> FocusFN(){ setTimeout(()>{ let pannel docume…

Linux初學時的一些常用命令(4)

1. 磁盤 查看當前磁盤使用情況 df -h查看某個文件大小 du -sh 文件名 如果不輸入文件名&#xff0c;默認是當前目錄的所有文件之和&#xff0c;即當前目錄大小 2. 系統內存 free參數詳解&#xff1a;https://blog.csdn.net/loongshawn/article/details/51758116 3. CPU CPU 使用…

小程序 --- 項目小練手Ⅰ

1. 接口文檔 2. 幫助文檔 小程序開發文檔 mdn 阿里巴巴字體 iconfont 3. 項目搭建 3.1 新建小程序項目 填入自己的appid: wxdbf2b5e8c2f521a3 3.2 文件結構 一級目錄 目錄名作用styles存放公共樣式components存放組件lib存放第三方庫utils自己的幫助庫request自己的接口…

vue aixos請求json

this.axios.get(/static/json/jinxiangZhe.json).then(res>{console.log(res);}).catch( error > {console.log(error,error)}) 轉載于:https://www.cnblogs.com/SunShineM/p/9087734.html

小程序 --- Tab組件的封裝

1. Tabs組件的封裝 1.1 組件的引入 使用自定義的組件很簡單,只需在使用組件的頁面的配置文件.json文件中配置. // pages/goods_list/index.json {"usingComponents":{"Tabs": "../../components/Tabs/Tabs"} }然后再.wxml文件中使用即可 <…

爬蟲之拉勾網職位獲取

重點在于演示urllib.request.Request()請求中各項參數的 書寫格式 譬如&#xff1a; url data headers...Demo演示&#xff08;POST請求&#xff09;:import urllib.requestimport urllib.parseimport json, jsonpath, csvurl "https://www.lagou.com/jobs/positionAjax.…

小程序 --- 點擊放大功能、獲取位置信息、文字樣式省略、頁面跳轉(navigateTo)

1. 點擊放大功能的實現 需求: 點擊輪播圖中的圖片會實現放大預覽的功能。首先有輪播圖的樣式如下 <!-- pages/goods_detail/index.wxml --> <!-- 輪播圖 --> <view class"detail_swiper"><swiperautoplaycircularindicator-dots><swip…

Axure實現多用戶注冊驗證

*****多用戶登錄驗證***** 一、&#xff08;常規想法&#xff09;方法&#xff1a;工作量較大&#xff0c;做起來繁瑣 1、當用戶名和密碼相同時怎么區分兩者&#xff0c;使用冒號和括號來區分&#xff1a; eg. (admin:123456)(123456:demo)(zhang:san);由此得出前面是括號后面是…

前端插件網址

http://www.swiper.com.cn/轉載于:https://www.cnblogs.com/luchuangao/p/9088057.html

python --- opencv部分學習

1. OpenCV 1.1 opencv概念 OpenCV是一個基于BSD許可(開源)發行的跨平臺計算機視覺庫可以運行在Linux、Windows、Android和Mac OS操作系統上它輕量級而且高效 – 有一系列C函數和少量 C 類構成同時提供了 Python、Ruby、MATLAB等語言的接口實現了圖像處理和計算機視覺方面的很…