分布式管理軟件git

關(guān)于Git的介紹有很多,我們還是簡(jiǎn)單的說下,還是有很多朋友沒有從svn轉(zhuǎn)到git上。

git介紹

git是一款開源的分布式管理版本控制軟件,用于高效的支持大中小項(xiàng)目的開發(fā),提供版本內(nèi)容的控制,查詢,搜索等內(nèi)容。

git中主要有三個(gè)工作區(qū):

  • 版本庫(kù):在每一個(gè)git工程中都會(huì)存在一個(gè).git的文件夾,該文件里面具有g(shù)it版本控制的信息。
  • 工作區(qū):就是我們?cè)谖募夸浵驴吹降奈募A。
  • 暫存區(qū):暫存區(qū)是存儲(chǔ)在.git文件下的,所以我們一般稱為index區(qū)域或者stage區(qū)域,也可以稱為索引。

主要是理解三個(gè)工具區(qū)的作用,理解三個(gè)區(qū)域能幫助我們理解git操作針對(duì)區(qū)域的操作。

git的使用

我個(gè)人擦走哦偏愛命令行操作,所以講解流程是在命令行的操作下。偏愛圖形化操作的朋友可以對(duì)照著執(zhí)行。

git的安裝

ubuntu的系統(tǒng)安裝

sudo apt-get install git 
git --version
ubuntu@VM-0-16-ubuntu:~/Desktop/test/JAVA8ShiZhanYuanMa$ git --version
git version 2.17.1

centos 的安裝

yum install git

git的基礎(chǔ)命令講解

  1. clone

    目的是用來拷貝在某個(gè)地址的源代碼,或者是數(shù)據(jù)倉(cāng)庫(kù)地址。如果后面跟著一個(gè)另外的名稱是用來另命名。

git clone  https://gitee.com/*/*.git qiqi  重新命名本地項(xiàng)目名字
  1. init

init 是用來初始化一個(gè)地址的,或者初始化一個(gè)本地倉(cāng)庫(kù)

ubuntu@VM-0-16-ubuntu:~/Desktop/test/test$ git init 
Initialized empty Git repository in /home/ubuntu/Desktop/test/test/.git/
ubuntu@VM-0-16-ubuntu:~/Desktop/test/test$ ll
total 12
drwxrwxr-x 3 ubuntu ubuntu 4096 Dec 17 23:26 ./
drwxrwxr-x 5 ubuntu ubuntu 4096 Dec 17 23:26 ../
drwxrwxr-x 7 ubuntu ubuntu 4096 Dec 17 23:26 .git/
  1. add

目的是用來將工作區(qū)下的目錄下某個(gè)文件或者是所有文件添加到暫存區(qū)中。
存在不同的區(qū)別

  • add . :監(jiān)控工作區(qū)的狀態(tài)樹,所有變化到暫存區(qū),不包含刪除文件。
  • add -u :僅監(jiān)控add的文件,將修改的文件提交到暫存區(qū),不提交新文件。
  • add -a : 修改文件內(nèi)容,新文件,刪除的文件。都提交
  1. status

查看上次的提交有沒有修改。顯示的是修改或者寫入緩存的改動(dòng)。

git status  幫助展示修改后的文件如果不想看詳細(xì)信息
git status -s  只輸出改變的文件
  1. dit diff

這個(gè)命令也是我們經(jīng)常用到的命令,用來查看status詳細(xì)的信息。

根據(jù)工作目錄中的文件與暫存區(qū)快照的之間的差異。顯示的是修改或者緩存一行行的具體修改內(nèi)容。

  • git diff :尚未緩存的改動(dòng),緩存說的是這個(gè)文件還沒有被執(zhí)行add操作。
  • git diff --cached : 已緩存的改動(dòng) ,代表已經(jīng)執(zhí)行了add操作中
  • gid diff HEAD:已緩存的與未緩存的所有改動(dòng)
  • git diff --stat:顯示整個(gè)摘要 ,具體信息
ubuntu@VM-0-16-ubuntu:~/Desktop/test/qiqi/studyJava8$ git status  -s 
 M src/test/Test.java
ubuntu@VM-0-16-ubuntu:~/Desktop/test/qiqi/studyJava8$ git diff 
diff --git a/studyJava8/src/test/Test.java b/studyJava8/src/test/Test.java
index 1c7eaa0..477a891 100644
--- a/studyJava8/src/test/Test.java
+++ b/studyJava8/src/test/Test.java
@@ -27,7 +27,7 @@ public class Test {
                        }
                };
                t1.start();
-               Thread.sleep(2000);
+       Thread.sleep(300);^M
                t1.interrupt();
        }
 
###這里執(zhí)行 git add操作之后
       
ubuntu@VM-0-16-ubuntu:~/Desktop/test/qiqi/studyJava8$ git diff 
這里不顯示文本信息
ubuntu@VM-0-16-ubuntu:~/Desktop/test/qiqi/studyJava8$ git diff --cached 
diff --git a/studyJava8/src/test/Test.java b/studyJava8/src/test/Test.java
index 1c7eaa0..477a891 100644
--- a/studyJava8/src/test/Test.java
+++ b/studyJava8/src/test/Test.java
@@ -27,7 +27,7 @@ public class Test {
                        }
                };
                t1.start();
-               Thread.sleep(2000);
+       Thread.sleep(300);^M
                t1.interrupt();
        }
  1. commit

add之后我們將數(shù)據(jù)內(nèi)容寫入到了緩存區(qū),其實(shí)也是暫存區(qū)。我們使用commit將內(nèi)容添加到倉(cāng)庫(kù)中去。

  • commit -m “摘要信息”

  • commit -a //將所有的unstaged(未申明的),不建議這么使用。相當(dāng)于 git add的操作

  • commit -am 上面兩步操作

  • commit --amend 增補(bǔ)提交,將本次提交內(nèi)容與當(dāng)前提交節(jié)點(diǎn)相同的父節(jié)點(diǎn)進(jìn)行一次新的提交,舊的提交會(huì)被取消。

    從這個(gè)上面我們經(jīng)常使用的操作提交時(shí)commit -m “摘要信息” ,commit --amend "用來合并提交,將前后兩個(gè)提交合并為一個(gè)提交"

  1. stash

將當(dāng)前的目錄與index改動(dòng)內(nèi)容壓入一個(gè)棧中,保證一個(gè)完整的工作目錄。再次進(jìn)行操作,

git stash list // 顯示這個(gè)棧的使用內(nèi)容
git stash pop // 進(jìn)行出棧,提取出來保存到工作區(qū)上
git stash // 就是代表的進(jìn)棧。

今天給搭建講解了9個(gè)基礎(chǔ)命令,這些都是平常常用到的,當(dāng)然也有部分的嗎,命令不是操作用的。下篇文章也會(huì)進(jìn)行介紹剩余的,并且還結(jié)合一篇實(shí)戰(zhàn)操作。幫助理解git。

理解了整個(gè)流程,git用起來還是很簡(jiǎn)答,方便的。

最后建議大家在使用git的時(shí)候,多多使用命令行來操作,這樣能幫助學(xué)習(xí)到很多內(nèi)容。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉(cāng)庫(kù)完整的鏡像下來。這樣一來,任何一處協(xié)同...
    __silhouette閱讀 16,198評(píng)論 5 147
  • Git 命令行學(xué)習(xí)筆記 Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉(cāng)庫(kù)完整的鏡像下來...
    sunnyghx閱讀 4,153評(píng)論 0 11
  • 我認(rèn)為好的故事創(chuàng)意就是一句話故事。這也是一個(gè)故事的“核心”。那如果你的故事不能用一句話概括出來,或者概括出來不夠精...
    豆泡兒閱讀 481評(píng)論 0 0
  • 一、養(yǎng)育孩子,是付出。 我們懷著千般喜悅,萬般期待迎來一個(gè)孩子。他(她)是我們的開心果,是我們的期待,是家庭的未來...
    田真七閱讀 1,162評(píng)論 0 1
  • 很多時(shí)候都想用文字把這些年的過往寫下來,始終沒有下定決心,從何開始,終于還是鼓足勇氣。 或許是因?yàn)楦?..
    昱小仙閱讀 259評(píng)論 2 1

友情鏈接更多精彩內(nèi)容