git是乙個最強大的分布式版本管理系統,通過c語言進行開發,且不同於集中式版本控制系統
1.並沒有**管理器,每個人的電腦都是乙個版本庫,相互只需要將修改推送給對方即可,所以不用聯網
2.分布式版本管理系統的安全效能高,因為並沒有所謂的**管理器,每個人的電腦都是乙個版本庫,所以並不用擔心電腦壞掉後,無法工作
3.強大的分支管理
所有的版本控制系統,其實只能跟蹤文字檔案的改動,比如txt檔案,網頁,所有的程式**等
1.安裝
2.配置
$ git config --global user.name "你的git賬號使用者名稱"
$ git config --global user.email "你的git賬號的郵箱"
-------此為全域性配置
————因為git是乙個版本控制系統,所以每個機器都必須自報家門:賬號 郵箱
3.建立git倉庫(版本庫)
————建立乙個空的資料夾,將其轉化為git可管理的版本庫
$ git init
----初始化git倉庫,轉化為git可管理的版本庫
————可以看到在當前目錄下,會有乙個隱藏的 .git目錄
4.將需要管理的檔案放在本地版本庫中,即新建立的git的版本庫下
————將檔案放在git倉庫中
$ git add readme.txt(需要管理的檔名)—————告訴git,將檔案的修改新增到倉庫中
$ git commit -m "write a file(本次提交的說明)"————告訴git,將檔案的修改提交到倉庫中
————可以add多個檔案,然後commit一次性提交到倉庫:
$ git add readme.txt
$ git add 1.txt 2.txt
$ git commit -m "add three files"
————git commit命令成功後,會輸出和告訴使用者,
----- file changed(新新增的檔案)
-----insertions (檔案內容裡面插入的多少行)
1.檢視git倉庫的狀態
$ git status -------即倉庫中有檔案被修改,有檔案被刪除等,大致的改變
2.檢視檔案改變的內容
$ git diff -------檢視git倉庫中具體改變的某內容,即什麼檔案被修改,修改的內容
3.提交修改後的檔案
提交修改過後的read.txt檔案:
$ git add read.txt-----但git控制台中並沒有輸出內容
------可以通過$ git status檢視git倉庫的狀態,是否已經儲存和新增到版本庫中
$ git commit -m "add a txt"-----進行提交
------可以通過$ git status檢視倉庫的當前的狀態,會提示,其倉庫中已經沒有什麼可以進行提交的了
1.檢視歷史記錄
--------檢視檔案被修改的歷史記錄,即檢視提交的日誌
$ git log -------提交的日誌,當時提交檔案的修改內容(即使用commit命令提交時,所書寫的描述內容),以及當時的commit id(git的版本號),一大串數字
2 .版本回退
--------回退到某個之前提交時的版本
--------首先git必須知道是哪個版本,也就是哪個commit id(一大串數字的哪個),且用head表示當前版本, head^ 表示上乙個版本,head^^ 表示上上個版本
$ git reset --hard head^ ------表示回退到上乙個版本
$ git reset --hard head^^ ------表示回退到上上乙個版本
$ git cat readme.txt --------檢視當前版本readme.txt檔案的內容,即提交的內容,也可檢視某檔案的內容
3 .回退後,想回到未來的某個版本
---------當回退到歷史版本後,最新的版本可能將會被覆蓋掉。即只能回到過去,並不能回到未來
---------可指定某個版本,告訴其版本的id
$ git reset --hard 1094a(某個指定版本的版本號id。可取前幾位)
---------git中版本回退的速度非常快,因為git內部存在有指向當前版本的head指標,當回退版本時,其實只是
指標的指向發生改變,從乙個指標指向另乙個指標
4 .回退後,想回到最新版本,但忘記最新版本的commit id
----------$ git reflog --------可以檢視操作的每一條命令和每次提交commit的版本號id
5 .撤銷修改
----------當檔案中發現多新增了一行,多刪除了一行,想撤銷
----------1. 丟失工作區的修改
------$ git checkout -- file(檔名,不一定是file) -----可以丟失工作區的修改,即撤銷此檔案在工作區的修改
------當檔案還沒有新增到暫存區,則會返回到和版本庫一模一樣的狀態
------當檔案已經新增到暫存區,則會返回到新增到暫存區後的狀態
----------2. 工作區的修改已經新增到暫存區,想丟失修改
------$ git reset head readme.txt(檔名) ------將暫存區的修改撤銷掉,重新放回到工作區
------即回退到之前的版本,回到已經工作區修改,但還未新增到暫存區的狀態
------$ git checkout --readme.txt
-----版本回退後,通過checkout丟失工作區的修改
6 .刪除檔案
---------當檔案刪除時,同樣是乙個操作
---------當檔案add,且commit提交後,在檔案管理器中刪除檔案,此時的提交後的版本庫中存在此檔案
1.確實需要刪除版本庫中的某檔案
--------$ git rm test.txt -----------刪除版本庫中的test.txt檔案
2.誤刪
--------$ git checkout --test.txt --------撤銷修改,返回到之前的狀態
Git 相關的操作
1 本地分支和遠端分支關聯 a 建立本地分支 git checkout b test 提交到遠端分支上 git push origin test 遠端分支上也建立了test分支 b 刪除本地分支 git branch d test 刪除的不是本地正在開發的分支 git branch d test 強...
git 的相關操作
檢視目前倉庫可以遠端更新的資訊 git remote v 配置乙個遠端更新鏈結,要擁有git倉庫訪問許可權的 git remote add upstream 拉取遠端倉庫的 git fetch upstream 合併遠端倉庫的 git merge upstream master 把遠端倉庫的 作為新...
git 相關操作
merge 比如在上feature 4.2修改,commit push後,切換到dev分支 1 commit push 2 checkout dev 分支。3 git pull origin dev 4 git merge no ff origin feature 4.2 把feature 4.2上...