Git必須掌握的基本操作
包含Git完整基本操作,並提供進階學習的資料。
部分選取自《Android神兵利器》
1-基本操作
1-建立倉庫
- Git init:在一個檔案目錄執行該指令,會把該目錄快速設定成Git的程式碼倉庫。
- Git clone:從遠端伺服器clone工程,也會建立一個程式碼倉庫。
2-提交修改
- git status
檢視當前倉庫狀態。會提示那些檔案發生修改,哪些內容需要add&commit。
- git add 檔名
新增檔案到倉庫 - git commit -m “這裡是註釋”
將add的檔案添加註釋並且提交到程式碼倉庫 - git log
能檢視到剛才提交的資訊 git shortlog
將開發者操作按照姓名分組
git commit –amend -m “這裡是追加的註釋,會覆蓋上次的註釋”
如果上一個註釋寫錯,可以這樣進行修改和追加。
3-diff比較不同
git diff ReadMe.txt(檔名)
顯示指定內容的前後變化
git diff HEAD
顯示出上次提交節點的差別
git還支援第三方更強大的diff工具:Meld、beyond compare
- gitk
圖形化的log記錄
4-別名設定,簡化log
`git config –global alias.lg “log –color –graph –pretty=format:’%Cred%h%Creset-%C(yellow)%d%Creset%s%Cgreen(%cr)%C(bold blue)2-Git操作區域
Git三個區域:工作區(開發修改程式碼區域)、暫存區、歷史區(儲存各個版本區域)
暫存區:Git根目錄下 > .git > index的檔案中,儲存了所有的程式碼提交記錄。
add操作就是將記錄儲存到暫存區,此時Head依然指向之前的內容,通過commit將暫存區的內容全部提交,之後Head指向最新內容(通過gitk檢視)
- Git管理的是修改內容,而不是檔案
3-Git回退
- git checkout ReadMe.txt(檔名)
將未add提交的修改內容全部還原
如果執行add後修改的內容,執行該指令會修改到執行好add後 git checkout – ReadMe.txt(檔名)
能將add提交的內容都回退掉
git reset HEAD ReadMe.txt(檔名)
檔案從暫存區回退到工作區
1-回退版本
- git reset –hard HEAD~1
回退一個版本
git reset –hard HEAD~5
回退5個版本()
hard引數:不僅僅是將本地版本庫的頭指標全部重置到指定版本,也會重置暫存區,並且會將工作區程式碼也回退到這個版本。
- 也可以通過commit ID回退到對應版本。
2-操作歷史
- git reflog
可以檢視所有操作的歷史!
4-檔案操作
- git rm ReadMe.txt(檔名)
刪除檔案
5-檔案暫存
在main分支上開發功能的時候,開發到一半,發現了以前的BUG,這時新建一個BUG分支,在上面修復BUG。但是因為main分支開發的功能開發到一半,會導致BUG分支無法編譯通過。這時候可以用`git stash`暫存當前的修改。在修改前的分支作為新的BUG分支。等解決BUG後切換回main分支的時候,再把暫存的內容Pop出來。 先checkout一個BUG分支,修改BUG後,用`git merge`合併到master分支,並且刪除了BUG分支。這時候回到main分支,通過`git stash`pop出之前暫存的內容。- git stash
暫存
- git stash list
檢視當前暫存內容 - git stash apply/pop
內容恢復,後者會刪除記錄,前者可以通過git stash drop刪除暫存記錄。
6-遠端倉庫
Git本地倉庫和Git遠端倉庫通訊,需要SSH進行身份認證。ssh-keygen -t rsa -C “[email protected]”
建立SSH私鑰和公鑰
id_rsa私鑰用於驗證自己身份。id_rsa.pub公鑰用於向伺服器表明自己的身份。git remote add
將原生代碼庫提交到遠端倉庫
git push -u origin master
將本地master分支提交到遠端的master分支,並關聯起來。
git pull –rebase
如果Apush修改前,B push了修改,A push的時候需要先從遠端獲取最新修改。這個指令不會產生過多的merge歷史。
git clone git地址
就能從遠端倉庫clone下來,新建一個本地倉庫。
7-分支管理
git checkout -b first
建立新分支,並且切換到該分支,等價於:
git brach first
建立分支
git checkout first
切換分支
如果此時有未提交的修改,是無法切換分支的,這時候就可以用git stash進行暫存git branch
檢視分支
-r
顯示所有遠端分支,-a
顯示所有本地分支和遠端分支(master)git merge first
在first分支進行修改、add、commit後,切換到master分支,合併第一個分支到master分支。
merge和rebase,rebase操作後時間線會合並,merge不會。其餘都是一樣的。
git branch -d first
刪除分支first。-d是刪除分支,-D是強行刪除分支。
git remote origin
檢視遠端分支
git remote -v origin
檢視詳細資訊
git checkout -b dev
- git push origin dev
將dev分支推送到遠端倉庫。
一般專案有一箇中央的分支,用於打tag和釋出realse版本。會新建一個develop分支進行開發,每個開發者再從develop分支新建自己的分支,功能完成後會merge到develop分支。 git add/commit 是分別從工作區,到暫存區,再到版本區。 git push用於版本區到遠端倉庫。 遠端倉庫獲取最新內容是git pull到工作區 版本區到工作區是git checkout HEAD 暫存區到工作區是git checkout
8-Tag
Tag用於記錄某個commit點或者分支的歷史快照。Tag通常打在Master分支上,以保證程式碼的準確性。- git tag version1
建立Tag,會記錄在最後的提交上
- git tag version2 commitID(commit點的ID)
在commitID點加上tag git tag
檢視所有Tag
git tag -a v1 -m “vesion1” b87123665216321635173
-a制定tag名字,-m制定註釋文字
git show tag名字
顯示tag的詳細資訊
git tag -d version0
刪除tag
git push origin version0
推送tag到遠端倉庫
git push origin –tags
推送所有本地tag到遠端倉庫
刪除遠端Tag
刪除本地tag,再重新push到遠端程式碼庫。…….
9-進階學習
書籍
Git權威指南中文版
Git Community Book
WIKI Git主頁
練習網站
Git dojo
Learn Git in 15min
LearnGitBranching
相關推薦
Git必須掌握的基本操作
包含Git完整基本操作,並提供進階學習的資料。 部分選取自《Android神兵利器》 1-基本操作 1-建立倉庫 Git init:在一個檔案目錄執行該指令,會把該目錄快速設定成Git的程式碼倉庫。 Git clone:從遠端伺服
git命令行基本操作
撤銷 合並 冒號 文件的 初始化 徹底 message rdquo only --------------------------------------------------------------------------------------------------
git 的一些基本操作
str 一個 修改信息 rem 建倉 文件添加 nbsp init origin 獲取倉庫 git init:初始化一個倉庫,當前目錄下生成 .git 目錄,該目錄為倉庫。 git init --bare :生成裸倉庫,不存在 .git 目錄。 git clone (
詳解Oracle存儲結構 掌握基本操作管理
nta 創建數據庫 c中 當前 裝載 sca 關閉數據庫 步驟 rem 2018.10.14那天我寫了Oracle12C 的安裝並初步了解了一下Oracle體系結構中數據庫和實例。從中我們知道: 數據庫是磁盤上數據的集合,位於收集和維護相關信息的數據庫服務器上的一個或多個
Git介紹以及基本操作
介紹 Git優勢 大部分操作在本地完成不需要連網; Git是分散式的管理工具,本地就有一個倉庫並儲存了完整的版本歷史,大部分操作在本地就可以完成,這是傳統的集中式管理工具無法做的; 完整性儲存 Git會對每一次儲存的資料進行Hash演算法並將Hash值儲存
3. Git與TortoiseGit基本操作
1. GitHub操作 本節先簡單介紹 git 的使用與操作, 然後再介紹 TortoiseGit 的使用與操作. 先看看SVN的操作吧, 最常見的是 檢出(Check out ...), 更新 (Update ...), 以及 提交(Commit ...); 相當於有一
git管理svn基本操作
簡介 當前,大多數開發中的開源專案以及大量的商業專案都使用 Subversion 來管理原始碼。作為最流行的開源版本控制系統,Subversion 已經存在了接近十年的時間。它在許多方面與 CVS 十分類似,後者是前者出現之前程式碼控制世界的霸主。 而在分散式版本控制系統
Git與TortoiseGit基本操作
1. GitHub操作 本節先簡單介紹 Git 的使用與操作, 然後再介紹 TortoiseGit 的使用與操作. 先看看SVN的操作吧, 最常見的是 檢出(Check out ...), 更新 (Update ...), 以及 提交(Commit ...); 相當於
你必須學會的Git入門基本操作
Git簡介 Git不僅僅是實際專案開發中進行程式碼管理的神器,也是你在天碼營學習需要掌握的工具。 Git是一種程式碼版本控制工具。我們在實際專案中和天碼營的學習過程中都會產生大量的專案程式碼,Git可以幫助我們記錄專案中每一個檔案的每一次改動記錄,如果我們誤刪了重要的資訊或者需要找回很久以前的某一段內容,能夠
git超速掌握之一(基本使用)
status 工作區 顯示 準備 地址 新建項目 https協議 pull stat 前言: 無論你是運維、開發還是IT愛好者,都會聽說github了吧?動不動哪位大神就說在github上有什麽什麽項目,我的github地址是xxxxx,甚至有自己個github在找
Git基礎入門(四)Git基本操作2
git 操作 基礎忽略文件: 在實際開發過程中總有些文件無需納入Git的管理,比如日誌文件、臨時文件等 在這種情況下,我們可以在工作目錄中創建一個名為.gitignore的文件,列出要忽略的文件名或者表達式 例:cat .gitignore *.[oa]
筆記:git基本操作
基本概念 位置 bar 回退 let 管理 文件夾 私有 推送 原文: http://www.cnblogs.com/pingwen/p/8098035.html 1. 快速入門的基本概念 相比SVN,TFS等集中式的版本管理系統,GIT分布式管理最重要的理
Git 基本操作
gitGit 基本操作Git 的工作就是創建和保存你項目的快照及與之後的快照進行對比。本章將對有關創建與提交你的項目快照的命令作介紹。獲取與創建項目命令git init用 git init 在目錄中創建新的 Git 倉庫。 你可以在任何時候、任何目錄中這麽做,完全是本地化的。在目錄中執行 git init,就
Git基本操作
AD span class col lena why ext -m con 1.初始化 git init 2.提交文件 git add filename.xxx 3.commit git commit -m "why commit this file" 4.pu
Git基本操作一
-h 緩沖 錯誤 src 成功 沒有 git log 字符串 郵箱 添加版本庫 什麽是版本庫?版本庫就是把代碼進行管理,代碼的刪除,更新Git都可以追蹤,Git也可以追蹤歷史版本,隨時回滾(還原項目); 第一步:我們建立一個空的文件夾 第二步:我們在這個目錄建立版本庫
Git基本操作和使用
源碼 沒有 ini stat 是我 commit ase 源地址 git init 基本命令: git config git init git clone git remote git fetch git commit git rebase git push 本地基本操
Git2:Git基本操作
常用操作 顯示文件 簡單 找到 周期 ranch name mit 兩種 目錄 一、git全局配置 二、創建一個版本庫 三、git的常用操作 1、版本提交與回退 1.1、版本提交 1.2、版本回退 2、工作區、版本庫與暫存區 2.1、工作區 2.2、版本庫 3、管理文
在CentOS7.5上安裝MySQL(5.7版本),掌握MySQL基本操作。
tex RoCE 使用 9.png apache error 需求 結果 加強 當今主流數據庫概略: 在數據庫技術日益發展的今天,主流數據庫代表著成熟的數據庫技術。了解常用數據庫,就能知道數據庫技術發展的程度,以及未來的大體方向。 數據庫分關系型數據庫和非關
第二次作業-git的基本操作
兩個文件 con 修改用戶 png 頁面 rsa keys 管理 stat 作業的要求來自於:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 一、修改用戶名和郵箱地址: (1)配置用戶名命令:
Git基本操作指令
本篇記錄git配置完成後的基本使用所需的指令: 首先建立一個空資料夾, 點選右鍵選擇 git bash here進入命令框介面 輸入下面命令把YourSSH換成自己的SSH地址,(首先你要有一個SSH地址) git clone YourSSH 等待他自動把雲端的檔案下載到本地我