git學習總結

2021-10-23 15:26:56 字數 4105 閱讀 2445

git是乙個版本控制系統,最基本的功能就是實現檔案迭代時防止歷史修改記錄的丟失。在此基礎上形成了分布式檔案管理體系,即多人共同遠端操作等等這些功能。(git是目前世界上最先進的分布式版本控制系統(沒有之一)-摘自廖雪峰的git教程)

知道了git是做什麼的,那麼就可以開始為了達到預期的效果進行操作啦!

暫存區:add以後commit之前檔案版本存放的位置

版本庫:commit以後,檔案的位置

國內映象(

兩者沒什麼區別,就是官網的對網速有要求。

安裝過程沒什麼可說的,一路回車。

安裝完成以後,在開始選單裡面找到git bash,然後彈出類似命令列視窗的東西,對git進行設定,進行自報家門。如下:

$ git –global user.name 「zhangziyi」

$ git –global user.email 「[email protected]

(–global 引數的意思就是說,這台機器上所有的git倉庫都會用這個name和email,不用再次設定了)

自報家門以後就可以開始造作了!

首先建乙個倉庫,其實就是先找乙個路徑:

$ cd f:               //切換到需要的路徑下

$ mkdir github //建立乙個資料夾

$ cd github //切換到新建立的資料夾下

$ pwd //顯示當前路徑,確認路徑跟自己預期的效果是一樣的

$ git init //初始化git倉庫,到這裡,這個資料夾就可以被稱為是本地的乙個git倉庫了

之後返回一句話: initialized empty git repository in /users/michael/learngit/.git/

翻譯過來就是,你在這個路徑下初始化了乙個空的git倉庫,並且多了乙個隱藏檔案.git

建倉以後就是一系列的操作:

$ git add #.***                        //把檔案新增到倉庫

$ git commit -m "提交的相關說明" //提交

到這裡,本地一系列正常路子的操作就夠用了,但是很顯然,這是不夠的,因為之前已經說明了,版本控制系統,版本呢?控制呢?下面就開始做這些事了!

版本回退:
$ git status 	//檢視當前倉庫的狀態,比如說我修改了其中乙個檔案,但是沒有提交,然後在下面就會告訴你的

//如果沒有修改的話 nothing to commit, working tree clean

$ git diff //檢視當前檔案你修改了什麼東西, 即different

$ git log //檢視所有更改歷史,清晰明了

//當然我看完廖雪峰的教程最後一章,把他修改了一下 $ git lg 就看到效果了

//修改方法 $ git config --global alias.lg "log --color --graph --pretty=format:'%cred%h%creset -%c(yellow)%d%creset %s %cgreen(%cr) %c(bold blue)<%an>%creset' --abbrev-commit"

$ git log --pretty=oneline //後面加上引數以後,顯示的內容不會像不帶引數那麼全,但是夠用了

//裡面會出現commi id 就是乙個32位的字串,這個很重要的!

$ git reset --hard head^ //往前翻乙個版本

$ git reset --hard //回退到指定版本

$ git reflog //記錄你的每一次命令,讓你知道昨晚喝多了以後到底做了什麼不可告人的事情!

到這裡的話,版本回退,版本提交,記錄以前所有的事情,都已經差不多搞定了。但是,我改了一些東西,後來想了想,還是不改了,但是裡面修改了好多地方,我**記得清楚啊!

$ git checkout --//你的修改全部去掉,就好像是返回上乙個版本的感覺,但是沒commit,這個就不是乙個版本,所以不能用git reset --hard命令了!

$ cat //檢視這個檔案裡面的內容,仔細看看,嗯,確實改回來了!

但是我已經add到暫存區了,怎麼辦?

$ git reset head //把暫存區的修改撤銷掉然後再用 $ git checkout --,齊活兒!

在git裡面刪除檔案,如果你直接把檔案右鍵刪除,git 裡面肯定會報錯。

$ git rm //刪除檔案,然後需要commit一下,保證版本庫的一致性!

當然,誤刪了可以用checkout返回一下,就可以了。
執行到這裡的話呢,本地git就可以支援絕大部分的操作了。但是現在網際網路時代,我在家裡電腦上利用空閒時間也想繼續完成我的專案,所以就得需要類似雲端一樣的功能來支援這個工作了,因為我畢竟不能直接拿個u盤隨身帶著,每次下班都得copy一下吧!所以git最厲害的一塊就是遠端倉庫的使用。而且遠端倉庫最大的好處就是不用擔心你的電腦被外星人劫持了,影響到你的檔案。

下面就開始遠端連線github吧!

首先呢要先滿足兩個要求:

a、你有乙個github賬號,並且建了乙個git倉庫

b、本地已經建了乙個git倉庫,並且正常執行

然後東西齊全就可以開搞了!

1、$ ssh-keygen rsa -c "[email protected]" //生成你的ssh key,在根目錄(和倉庫名同級目錄)下會找到.ss**件,裡面有兩個檔案id_rsa是私鑰,不能洩露,id_ssa.pub是公鑰,可以隨便給任何人

$ add remote origin [email protected]:pirplechildren/learngit

//增加乙個遠端庫origin,他的鏈結指向是...

//當然git@...後面可以用github上提示你的鏈結,直接copy過來就好了

//通過這個命令,你完全可以做到乙個本地倉庫同時對應多個遠端倉庫,但是你得記住哪個是哪個,別弄錯了

$ git push -u origin master

//同步線上和本地的內容就ok了

[紅色字]對了,我在連線遠端的時候,出現了乙個 httprequestexception encountered... 的錯誤,這是因為github 禁用了tls v1.0 and v1.1,必須更新windows的git憑證管理器通過此**

當然一般你接觸乙個新的專案或者進到新的公司,人家肯定已經把遠端倉庫給建好了,你需要做的只是把遠端的轉殖乙份回來就可以操作了。為了實現這乙個假設,現在github上新建乙個倉庫並且勾選initialize this repository with a readme,他幫你初始化這個倉庫的時候,會為你建乙個readme.md的檔案。

然後 $ git clone [email protected]/purplechildren/newgitres.git(當然你可以複製過來位址)

就轉殖好了,然後在重複原來的把自己ssh key放到github中,就可以提交並且修改啦!

建立與合併分支

這個功能主要是為了滿足版本庫裡面的內容有一部分正在使用,但是修改的話會對使用造成影響。所以這個功能就橫空出世了,你完全可以在乙個分支裡面進行修改提交等相關操作,對版本庫裡面的內容不會有影響。等全部改完了,然後直接合併到主線上,再把分支刪除,就ok了。master就是主線,分支你可以自己命名。

$ git checkout -b dev    //dev就是你要建立的新的分支並且進入該分支

//他等於

//$ git branch dev 建立

//$ git checkout dev 切入

//兩步的合集

$ git branch //檢視現在所有的分支,進行管理

$ git merge dev //進行把dev分支上的內容合併到當前分支上,所以你提交的時候要記得切回主線上

$ git -d branch dev //刪除分支dev

補充:

1、刪除檔案或資料夾,以及重新命名資料夾:$ git rm -rf 資料夾名

然後提交,再同步到遠端倉庫

Git 學習總結

一 建立版本庫 repository mkdir learngit 建立乙個名字為learngit的資料夾 cd learngit 進入到learngit資料夾 pwd 顯示當前目錄 git init 把這個目錄變成git可以管理的倉庫 在該目錄下編寫乙個readme.txt檔案 該目錄的子目錄也行...

Git學習總結

1.git常用命令 git init 初始化乙個目錄成倉庫 新增檔案到倉庫 git add 檔名 把檔案修改新增到stage 暫存區 可多次新增 gitcommit 提交到倉庫 把暫存區的內容提交到當前分支 git status 檢視當前倉庫中是否有修改過且未提交的 git diff 檔名 顯示當前...

Git學習總結

1 git安裝的配置 git config global user.name your name git config global user.email your email 2 初始化git倉庫 git init 3 新增檔案到git倉庫 git add file1 新增file1 git 新增...