1. 程式人生 > >git學習教程記錄

git學習教程記錄

Git教程學習記錄如下:

集中式VS分散式:

集中式版本控制系統必須聯網才可以工作的,版本庫集中放在中央伺服器上,工作的時候要從伺服器上取得最新的版本,幹完活後再推送到中央伺服器上。

分散式版本控制系統在每個人的電腦上都有一個完整的版本庫,因此工作的時候就不需要聯網,並且安全性也很高,

SVN是Subversion的簡稱,是一個開放原始碼的版本控制系統,相較於CVS,它採用了分支管理系統,他的設計目標就是取代CVS。

初始化一個倉庫的命令如下:

$ git init

配置一個Git倉庫的命令如下:

$ git config  --global user.name “Your Name”

$ git config  --global user.email [email protected]

倉庫:repository

新增檔案的命令:

$ git add filename

提交檔案的命令如下:

$ git commit –m “information”

時刻掌握倉庫的當前狀態的命令如下:

$ git status

檢視檔案的不同的命令如下:

$ git diff

git status可以檢視檔案被修改過,git diff可以檢視檔案修改的內容。

檢視歷史提交的記錄的命令如下:

$ git log

該命令顯示從最近到最遠的提交日誌

如果顯看的眼花繚亂我們可以新增如下的命令

$ git log –pretty=oneline

回退到上一個版本的命令如下:

$ git reset –hard HEAD^

回退後如何再返回原來的版本的命令如下:

$ git reset –hard 3156aa781e

用來記錄操作的每一條命令的命令如下:

$ git reflog

小結:

(1)HEAD指向的版本就是當前的版本,因此Git允許我們在版本的歷史之間穿梭,使用命令$ git reset –hard commit_id

(2)穿梭前可以使用$git log 檢視提交歷史,以確定要回退到那個版本

(3)要重返未來,使用$git reflog檢視命令的歷史記錄,以確定要回退到歷史的那個記錄。

工作區和暫存區:

我們使用命令$git add 把檔案新增進去,實際上就是吧檔案修改新增到暫存區stage

我們使用命令$git commit提交更改,實際上就是把暫存區stage的所有內容提交到當前分支master

工作區中的檔案.git裡面含有許多的內容,其中最重要的就是stage的暫存區,還有Git為我們自動建立的分支master,以及指向master的一個分支HEAD。

Git管理的是修改而不是檔案

檢視工作區和版本庫裡面的最新版本的區別的命令如下:

$ git diff HEAD  --  readme.txt

如果每次修改不使用git add 命令新增到暫存區stage,那就不會加入到commit中。

git diff:是檢視working treeindex file的差別的。

git diff--cached:是檢視indexfilecommit的差別的。

git diffHEAD:是檢視working treecommit的差別的。(你一定沒有忘記,HEAD代表的是最近的一次commit的資訊)

撤銷修改命令如下:

$gitcheckout – readme.txt

該命令的作用就是把檔案readme.txt在工作區中的修改全部撤銷,分兩種情況:

1)一種就是readme.txt自修改後還沒有放到暫存區,現在撤銷後就回到和版本庫一模一樣的狀態

2)一種就是readme.txt已經新增到暫存區stage後,又做了修改,現在撤銷後就回到新增暫存區後的狀態。

總之就是讓這個檔案回到最近一次git commit git add時的狀態。

使用如下命令可以把暫存區的修改撤銷掉

$git reset HEAD file

Git reset命令既可以回退版本,也可以把暫存區的修改會退到工作區,當我們使用HEAD時,表示最新的版本。

小結:

(1)當你改亂了工作區的某個檔案的內容時,想直接丟掉工作區的修改的時候,用命令git checkout – file。

(2)當你不但該亂了工作區的某個檔案的內容,還新增到了工作區中,分兩步,第一步用命令git reset HEAD file,就回到了場景1,第二部按照場景1的操作。

(3)已經提交了不適合的修改到版本庫的時候,想要撤銷本次提交,前提沒有推送到遠端庫,使用命令如下:git reset –hard HEAD

刪除檔案

如果是誤刪除的檔案,由於版本庫裡面還有檔案,所以可以很輕鬆的把誤刪除的檔案恢復到最新版本。

$ git checkout – filename

小結:

工作目錄,stage,master是三種狀態,工作目錄到stage,使用git add/rm, stage到master,使用git commit,回退的話藉助提示資訊就ok。

因為GitHub需要識別出你推送的提交確實是你推送的,而不是別人冒充的,而Git支援SSH協議,所以,GitHub只要知道了你的公鑰,就可以確認只有你自己才能推送。

新增遠端庫:

在第一次向遠端倉庫提交程式碼的時候的命令如下:

$ git push –u origin master

Git不但會把本地的master分支內容推送到遠端新的master分支,還會把本地的master分支和遠端的master分支關聯起來,在以後的推送或者拉取的時候就可簡化命令。

把本地master分支的最新修改推送至GitHub的命令如下:

$ git push origin master

小結:

關聯一個遠端倉庫,使用如下的命令:

$ git remote add origin git @server-name:path/repo-name.git

關聯後,使用命令git push –u origin master第一次推送master分支的所有內容

此後再次提交使用命令:

$ git push origin master 推送最新修改

分散式版本系統的最大好處就是在本地工作完全不需要考慮遠端倉庫的存在,也就是沒有聯網都可以正常工作,而SVN在沒有聯網的時候是拒絕幹活的!當有網路的時候,再把本地提交推送一下就完成了同步。

從遠端庫克隆:

要克隆一個倉庫,首先必須知道倉庫的地址,然後使用git clone命令克隆

Git支援多種協議,包括https,但通過ssh支援原生git協議速度最快

小結

檢視分支的命令:git branch

建立分支的命令:git branch <name>

切換分支的命令:git checkout <name>

建立+切換分支的命令:git checkout –b <name>

合併某分支到當前分支的命令:git merge <name>

刪除分支的命令:git branch –d <name>

檢視分支合併圖的命令:git log --graph

小結:

檢視遠端庫資訊,使用git remote –v

從本地推送分支,使用git push origin branch-name,如果推送失敗,先用git pull抓取遠端的新提交。

在本地建立和遠端分支對應的分支,使用git checkout –b branch-name origin/branch-name,本地和遠端分支的名稱最好一致。

建立本地和遠端分支的關聯,使用git branch –set-upstream branch-name origin/branch-name

從遠端抓取分支,使用git pull,如果有衝突,要先處理衝突。

相關推薦

git學習教程記錄

Git教程學習記錄如下: 集中式VS分散式: 集中式版本控制系統必須聯網才可以工作的,版本庫集中放在中央伺服器上,工作的時候要從伺服器上取得最新的版本,幹完活後再推送到中央伺服器上。 分散式版本控制系統在每個人的電腦上都有一個完整的版本庫,因此工作的時候就不需要聯網,並且

Git學習筆記——記錄我的第一篇學習部落格

推薦廖雪峰老師的Git學習教程 Git是目前世界上最先進的分散式版本控制系統。 建立版本庫 mkdir <dir> //建立一個空目錄<dir> cd <dir> //跳轉至目錄<dir> p

Mac Git 學習教程 之 本地專案程式碼上傳到GitHub

在終端上輸入命令,拉一下遠端的程式碼,如出現報錯“fatal: refusing to merge unrelated histories”,只需要在該命令列新增允許即可“--allow-unrelated-histories”,然後跳出文件說明,退出即可,具體如下圖

Git 學習記錄

cli ont gin mailto git merge nbsp http -h rem 本地文件: 本地文件往遠程倉庫推送時,報錯了,如下圖: 解決方案: 1、 $ git push -u origin +master --強制push ( 這種方

學習記錄----git學習點滴

git clone 方式 實踐 段落 版本 diff git merge 推薦 可能 Github基本操作:達成目標:通過github基礎操作,學會使用Github去管理在線環境中使用的代碼、配置、資源等實驗相關文件,去添加、同步和下拉在遠程倉庫中的實驗文件,以此來維持自身

學習總結】Git學習-參考廖雪峰老師教程

公元2018-10-21 實驗室桌上型電腦 win7 64位 參考教程: 廖雪峰Git教程 目錄: 一、Git簡介 二、安裝Git 三、建立版本庫 四、時光機穿梭 五、遠端倉庫 六、分支管理 七、標籤管理 八、使用GitHub 九、使用碼雲 十、自定義Git 期末總結 此處留坑:

git學習記錄

一, 新增遠端倉庫     1.要關聯一個遠端倉庫,使用命令git remote add origin https://github.com/username/learngitt.git     2.關聯後,使用命令git push -u origin

git學習記錄

一.版本回退 [email protected]:~/learngit$ git log commit 8e749cbd2e6be927c4aa6ffcd8e56df142457654 Author: duankun <[email protected]> Dat

git學習記錄

一.git 安裝。     1.Linux安裝。可以試著輸入git,看系統中是否安裝git,如果沒有安裝會提示: $ git The program 'git' is currently not installed. You can install it by typin

git學習之-----githug通關記錄(1-20關)

1.init 2.config 3.add 4.commit 5.clone 6.clone_to_folder 7.ignore 在提交檔案時可能會有一些配置檔案或是一些由軟體本身產生的一些附加的檔案,這些檔案對我們自己的

Git學習】使用git reflog 命令來檢視歷史提交記錄並使用提交記錄恢復已經被刪除掉的分支

一、問題描述 昨天下午有個同事急急忙忙跑我座位上,要我幫忙,說他剛剛因為手誤,將他本地的某個project的某個branch分支刪除了,並且也將Gitlab上面的分支也刪除了。他本來是想發起merge request的,但是後面他眼神不好以為已經merged過了

Git學習記錄

建立版本庫 一、選擇一個合適的地方,建立一個空目錄: $ mkdir learngit $ cd learngit $ pwd /Users/michael/learngit pwd:顯示當前目錄 (如使用Windows系統必須保證路徑內沒有中文) 二、通過git init命令

Git學習記錄

工作區和暫存區 Git和其他版本控制系統如SVN的一個不同之處就是有暫存區的概念。 先來看名詞解釋。 工作區(Working Directory) 就是你在電腦裡能看到的目錄,比如我的learngit資料夾就是一個工作區: 版本庫(Repository) 工作區有一個隱藏目錄.gi

Git學習記錄

遠端倉庫 本章開始介紹Git的殺手級功能之一:遠端倉庫。 Git是分散式版本控制系統,同一個Git倉庫,可以分佈到不同的機器上。怎麼分佈呢?最早,肯定只有一臺機器有一個原始版本庫,此後,別的機器可以“克隆”這個原始版本庫,而且每臺機器的版本庫其實都是一樣的,並沒有主次之分。 其實一臺電腦

opencv+Python影象處理進階教程學習總結記錄(一)

教程:2 opencv+python影象處理進階 講解老師:賈志剛 1.1 進階主要內容概述:影象卷積與應用,直方圖應用,模板匹配,影象金字塔 1.2 模糊與卷積原理 上圖顯示為一維和二維的均值卷積示例 相關Api : blur 程式碼示例 import c

學習筆記:caffe2 教程記錄

接著caffe2 教程記錄五,這個是第六篇 ##7.建立自己的資料集 如何建立自己的資料集? 因此Caffe2使用二進位制DB格式來儲存我們想要訓練模型的資料。 Caffe2 DB是鍵值儲存的美化名稱,其中鍵通常是隨機的,因此批次大約是i.i.d,但是這些值是真實的:它們包含您希望

學習筆記:caffe2 教程記錄

接著caffe2 教程記錄四,這個是第五篇 ##5.Brewing Models  brew是Caffe2用於構建模型的新API。 CNNModelHelper過去曾擔任過這個角色,但由於Caffe2的擴充套件遠遠超出了CNN的優勢,因此提供更通用的ModelHelper

學習筆記:caffe2 教程記錄

接著caffe2 教程記錄三,這個是第四篇 ##4.Caffe2的主要概念Blobs and Workspace, Tensors Caffe2中的資料被組織為blob。 blob只是記憶體中一個命名的資料塊。 大多數blob包含一個張量(想想多維陣列),在Python中它們被轉換為nu

學習筆記:caffe2 教程記錄

接著caffe2 教程記錄二,這個是第三篇 ##3.影象載入與預處理  影象載入和預處理: 在本教程中,我們將研究如何從本地檔案或URL載入影象,然後您可以在其他教程或示例中使用這些檔案。此外,我們將深入研究使用caffe2 和影象時所需的預處理型別。 mac o

學習筆記:caffe2 教程記錄

接著caffe2 教程記錄一,這個是第二篇 ##2.載入預訓練模型  github 上的 :https://github.com/caffe2/tutorials/blob/master/Loading_Pretrained_Models.ipynb 描述:在本教程中