1. 程式人生 > >git--基礎篇

git--基礎篇

一、環境初始化

$ git config --global user.name "John Doe"
$ git config --global user.email [email protected]
$ git config --list
$ git config user.name

 1、獲取幫助

$ git help <verb>
$ git <verb> --help
$ man git-<verb>
$ git help config

二、獲取 Git 倉庫

1、在現有目錄中初始化倉庫

$ git init
$ git add *.c
$ git add LICENSE
$ git commit -m 'initial project version'

2、克隆現有的倉庫

$ git clone https://github.com/libgit2/libgit2
$ git clone https://github.com/libgit2/libgit2 mylibgit

三、記錄每次更新到倉庫

1、檢查當前檔案狀態

$ git status
On branch master
nothing to commit, working directory clean
跟蹤檔案
$ git add README

要暫存這次更新,需要執行 git add 命令。 這是個多功能命令:可以用它開始跟蹤新檔案,或者把已跟蹤的檔案放到暫存區,還能用於合併時把有衝突的檔案標記為已解決狀態等。 將這個命令理解為“新增內容到下一次提交中”而不是“將一個檔案新增到專案中”要更加合適。

git status 命令的輸出十分詳細,但其用語有些繁瑣。 如果你使用 git status -s 命令或 git status --short 命令,你將得到一種更為緊湊的格式輸出。 執行 git status -s ,狀態報告輸出如下:

$ git status -s
 M README
MM Rakefile
A  lib/git.rb
M  lib/simplegit.rb
?? LICENSE.txt

新新增的未跟蹤檔案前面有 ?? 標記,新新增到暫存區中的檔案前面有 A 標記,修改過的檔案前面有 M 標記。 你可能注意到了 M 有兩個可以出現的位置,出現在右邊的 M 表示該檔案被修改了但是還沒放入暫存區,出現在靠左邊的 M

 表示該檔案被修改了並放入了暫存區。 例如,上面的狀態報告顯示: README 檔案在工作區被修改了但是還沒有將修改後的檔案放入暫存區,lib/simplegit.rb 檔案被修改了並將修改後的檔案放入了暫存區。 而 Rakefile 在工作區被修改並提交到暫存區後又在工作區中被修改了,所以在暫存區和工作區都有該檔案被修改了的記錄。

2、忽略檔案

$ cat .gitignore
*.[oa]
*~

第一行告訴 Git 忽略所有以 .o 或 .a 結尾的檔案。一般這類物件檔案和存檔檔案都是編譯過程中出現的。 第二行告訴 Git 忽略所有以波浪符(~)結尾的檔案,許多文字編輯軟體(比如 Emacs)都用這樣的檔案 。

檔案 .gitignore 的格式規範如下:

  • 所有空行或者以  開頭的行都會被 Git 忽略。

  • 可以使用標準的 glob 模式匹配。

  • 匹配模式可以以(/)開頭防止遞迴。

  • 匹配模式可以以(/)結尾指定目錄。

要忽略指定模式以外的檔案或目錄,可以在模式前加上驚歎號(!)取反。所謂的 glob 模式是指 shell 所使用的簡化了的正則表示式。 星號(*)匹配零個或多個任意字元;[abc]匹配任何一個列在方括號中的字元(這個例子要麼匹配一個 a,要麼匹配一個 b,要麼匹配一個 c);問號(?)只匹配一個任意字元;如果在方括號中使用短劃線分隔兩個字元,表示所有在這兩個字元範圍內的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的數字)。 使用兩個星號(*) 表示匹配任意中間目錄,比如`a/**/z` 可以匹配 a/za/b/z 或 `a/b/c/z`等。

# no .a files
*.a

# but do track lib.a, even though you're ignoring .a files above
!lib.a

# only ignore the TODO file in the current directory, not subdir/TODO
/TODO

# ignore all files in the build/ directory
build/

# ignore doc/notes.txt, but not doc/server/arch.txt
doc/*.txt

# ignore all .pdf files in the doc/ directory
doc/**/*.pdf

3、檢視已暫存和未暫存的修改

如果 git status 命令的輸出對於你來說過於模糊,你想知道具體修改了什麼地方,可以用 git diff 命令。

要檢視尚未暫存的檔案更新了哪些部分,不加引數直接輸入 git diff

若要檢視已暫存的將要新增到下次提交裡的內容,可以用 git diff --cached 命令。(Git 1.6.1 及更高版本還允許使用 git diff --staged,效果是相同的,但更好記些。)

4、提交更新

$ git commit

 你也可以在 commit 命令後新增 -m 選項,將提交資訊與命令放在同一行,如下所示:

$ git commit -m "Story 182: Fix benchmarks for speed"

 給 git commit 加上 -a 選項,Git 就會自動把所有已經跟蹤過的檔案暫存起來一併提交,從而跳過 git add 步驟:

$ git commit -a -m 'added new benchmarks'

 5、移除檔案

$ rm PROJECTS.md

如果刪除之前修改過並且已經放到暫存區域的話,則必須要用強制刪除選項 -f 

另外一種情況是,我們想把檔案從 Git 倉庫中刪除(亦即從暫存區域移除),但仍然希望保留在當前工作目錄中。 換句話說,你想讓檔案保留在磁碟,但是並不想讓 Git 繼續跟蹤。 當你忘記新增 .gitignore 檔案,不小心把一個很大的日誌檔案或一堆 .a 這樣的編譯生成檔案新增到暫存區時,這一做法尤其有用。 為達到這一目的,使用 --cached 選項:

$ git rm --cached README

git rm 命令後面可以列出檔案或者目錄的名字,也可以使用 glob 模式。 比方說:

$ git rm log/\*.log

6、移動檔案

$ git mv file_from file_to

相關推薦

git基礎之-git配置資訊搭建

第一步:安裝git  圖示:一般從官網進來下載時都會是最新版本 未把圖片貼出來的,後面持續的選擇預設項就可以了 第二步:安裝好git後,開啟命令符檢查自己的版本  2.1  檢視版本命令:       git version               

Git基礎之遠端倉庫的基本操作以及如何給github的ReadMe檔案新增圖片

先給大家介紹個我自己總結的第一次如何上傳程式碼到github點選開啟連結,簡單介紹了初次使用的一些操作步驟,公司用的是SVN,但是多學點知識總是好的,萬一以後遇到了呢。和SVN一樣,和其他人合作開發專案

git--基礎

一、環境初始化 $ git config --global user.name "John Doe" $ git config --global user.email [email protected] $ git config --list $ git conf

g4e基礎#4 了解Git存儲庫(Repo)

存在 pull release .cn gitignore evel load file 鏈接 章節目錄 前言 1. 基礎篇: 為什麽要使用版本控制系統 Git 分布式版本控制系統的優勢 Git 安裝和設置 了解Git存儲庫(Repo) 起步 1 &nda

g4e基礎#6 了解Git歷史記錄

ron 表示 git merge none 這一 如果 代碼 工具 lin 章節目錄 前言 1. 基礎篇: 為什麽要使用版本控制系統 Git 分布式版本控制系統的優勢 Git 安裝和設置 了解Git存儲庫(Repo) 起步 1 – 創建分支和保

Git學習0基礎(下)

擴展 創建 不同 sheet id_rsa con 簡單 托管 讀取數據 server上的 Git - 協議 Git能夠使用四種基本的協議傳輸資料:本地協議(Loc

Git 學習筆記(基礎

1. 命令初識 檢視GIT版本 git --version 在Global級別設定UserName(推薦使用) git config --global user.name ’Freud Kang‘ 在當前目錄界別設定UserName(優先順序高)git config us

Git學習筆記:基礎

被拒絕 斜杠 etc 信息 bsp 鏈接地址 一起 add 學習 git可以說是所有開發者出開發語言之外的最基本的基本功了,熟悉git可以方便的進行代碼版本控制,以及與其他開發者進行合作開發。本文內容是我以往學習git時做的筆記,主要是關於git最基本的操作,但 只要熟練掌

長文說 git 基礎

版本管理在產品級開發中是非常重要的一個部分,它涉及到團隊協作,且影響到產品最終的釋出、上線以及測試環節,當前最流行的版本控制系統是 git。git 內容非常多,本文儘量剋制地來介紹 git 的基礎內容 概述 版本控制系統的作用 版本控制系統(Version Control System)是一種記錄若干檔案

Git 沙盒模擬實戰(基礎)

# Git 沙盒模擬實戰 ## 分支 現有一個主分支 ![image-20200911190747381](https://i.loli.net/2020/09/11/8fRnNQYUWXbA6Ex.png) ### 建立分支 ~~~shell # 建立分支 $ git branch bugFi

Qt入門之基礎 ( 二 ) :Qt項目建立、編譯、運行和發布過程解析

qt 5 對話 讓我 進度 qmake ctr deploy 設定 設置 轉載請註明出處:CN_Simo。 題解:   本篇內容主講Qt應用從創建到發布的整個過程,旨在幫助讀者能夠快速走進Qt的世界。   本來計劃是講解Qt源碼靜態編譯,如此的話讀者可能並不能清楚地知

Qt入門之基礎 ( 一 ) :Qt4及Qt5的下載與安裝

mingw ins 第3版 點擊 調試 但我 關系 構建 eas 轉載請註明出處:CN_Simo. 導語: Qt是一個跨平臺的C++圖形界面應用程序框架。它提供給開發者建立圖形用戶界面所需的功能,廣泛用於開發GUI程序,也可用於開發非GUI程序。Qt很容易擴展,並

進階之路(基礎) - 011 arduino api基礎手冊

異或 change 可用 算術運算符 chan 程序結構 換算 是否 關閉 arduino 函數 api 程序結構 在Arduino中, 標準的程序入口main函數在內部被定義, 用戶只需要關心以下兩個函數:void setup()void loop()setup() 函數

進階之路(基礎) - 008 SPI數據傳輸(庫函數方法)

ria att clockd == bus 屏蔽 attach serial out 主機端: 1 /********************************* 2 代碼功能:SPI數據傳輸(主機端) 3 引腳說明: 4 SS/CS:片選(高電平屏

進階之路(基礎) - 009 通過底層AVR方法實現SPI數據傳輸

lean oop and return false 進階 from setup pie 主機端: /********************************* 代碼功能:通過底層AVR方法實現SPI數據傳輸(主機端) 創作時間:2016*10*17 使用資源:

進階之路(基礎) - 007 脈沖寬度測量

style 函數 long 最大 void serial 作者 println 電平 1 /********************************* 2 代碼功能:Pulse脈沖寬度測量 3 使用函數: 4 pulseIn(引腳號,脈沖響應電平,

elasticsearch-查詢基礎

cor 結構 one and string 以及 sco 高級 posit elasticsearch的查詢有兩部分組成:query and filter。 兩者的主要區別在於:filter是不計算相關性的,同時可以cache。因此,filter速度要快於query。 先

【轉載】 Spark性能優化指南——基礎

否則 內存占用 是否 進行 優先 邏輯 我們 流式 字節數組 前言 開發調優 調優概述 原則一:避免創建重復的RDD 原則二:盡可能復用同一個RDD 原則三:對多次使用的RDD進行持久化 原則四:盡量避免使用shuffle類算子 原則五:使用map-side預聚

Django基礎之數據庫選擇及相關操作

setting 必須 需要 mysql pyc -- creates 127.0.0.1 settings 在djanjo框架中我們最常用的框架分別就是mysql和sqlit了,下面我們將分別講述一下這倆種數據庫的基礎必備知識 mysql 一、利用命令創建(在終端上執行)

[轉]Eclipse插件開發之基礎(1) 插件開發的基礎知識

作用 原本 services 註冊 1-1 啟動 創建 abs class 原文地址:http://www.cnblogs.com/liuzhuo/archive/2010/08/13/eclipse_plugin_1_0_2.html 名詞翻譯   有一些名詞在翻譯的