git git常用命令的學習與總結

2021-07-15 07:52:56 字數 4489 閱讀 1001

學習了廖雪峰大大的git教程,受益匪淺,把自己覺著重要的總結如下:

git是分布式版本控制系統,分布式和集中式的區別有哪些呢?

先說集中式版本控制系統,版本庫是集中存放在**伺服器的,而幹活的時候,用的都是自己的電腦,所以要先從**伺服器取得最新的版本,然後開始幹活,幹完活了,再把自己的活推送給**伺服器。**伺服器就好比是乙個圖書館,你要改一本書,必須先從圖書館借出來,然後回到家自己改,改完了,再放回圖書館。

分布式版本控制系統沒有「**伺服器」,每個人的電腦上都是乙個完整的版本庫,這樣,你工作的時候,就不需要聯網了,因為版本庫就在你自己的電腦上。既然每個人電腦上都有乙個完整的版本庫,那多個人如何協作呢?比方說你在自己電腦上改了檔案a,你的同事也在他的電腦上改了檔案a,這時,你們倆之間只需把各自的修改推送給對方,就可以互相看到對方的修改了。

請先自行安裝git,git ->git bash,跳出乙個類似命令列視窗的東西就是安裝成功了。

安裝完成後,還需要最後一步設定,在命令列輸入:

$ git config --global user.name "your name"

$ git config --global user.email "[email protected]"

建立乙個版本庫非常簡單,首先,選擇乙個合適的地方,建立乙個空目錄:

建立版本庫

$ mkdir learngit

$ cd learngit

$ git init

瞬間git就把倉庫建好了,而且告訴你是乙個空的倉庫(empty git repository),.git的目錄是git來跟蹤管理版本庫的,沒事千萬不要手動修改這個目錄裡面的檔案,不然改亂了,就把git倉庫給破壞了。

新增檔案

把檔案新增到版本庫

在learngit目錄下新建乙個reademe.txt,裡面內容為

git is a version control system.

git is free software

$ git add readme.txt

$ git add file1.txt

$ git add file2.txt

$ git commit -m "add 3 files"

-m 後面是說明文字,最好是有意義的說明文字,能夠知道你究竟幹了什麼。

修改readme檔案,改為

git is adistributedversion control system.

git is free software

檔案修改了之後,可以通過git status來看檔案的狀態,git diff檢視檔案修改了哪些地方,接著 通過add和commit提交修改。

$ git status 

$ git diff

$ git add readme.txt

$ git commit -m "add distributed"

檢視版本資訊

每次commit都會像乙個快照一樣,記錄下每次的提交,如果我們想知道一共修改哪些地方,可以使用 git log命令

把所有的歷史記錄都輸出了出來。git log命令顯示從最近到最遠的提交日誌,如果嫌太多看得眼花繚亂的,可以試試加上–pretty=oneline引數

看到的前面這一堆,是commit的版本id

回退歷史版本

可以看到當前版本已經是 add distributed了。

找到gpl的commit id ,再用reset 就可以回到gpl版本了。

刪除檔案

git rm file1.txt 刪除file1.txt

關聯遠端庫

$ git remote add origin git@server-name:path/repo-name.git
推送master分支的所有內容
$ git push -u origin master
此後,每次本地提交後,只要有必要,就可以使用命令git push origin master推送最新修改;

轉殖遠端庫

分支建立分支:

$ git checkout -b

'dev'

//-b 建立並切換到分支 dev

檢視當前分支:

$ git branch
切換分支:

$ git checkout master//切換回master
合併分支:

$ git merge dev//將dev合併到master
刪除分支:

解決衝突

當兩個分支同時修改了同乙個檔案的時候,就會出現衝突。

比如,我新建乙個分支 feature1,在這個分支下修改 hello.txt檔案,然後切換到master分支下,同樣修改hello.txt檔案,這時候合併分支的話就會發現有衝突。

衝突就是 同時修改了hello.txt

這時候需要手動修改衝突,把有衝突的檔案修改一下,再add commit

用帶引數的git log可以看到分支的合併情況:

之後就可以刪除分支了。

–no-ff方式的git merge

通常,合併分支時,如果可能,git會用fast forward模式,但這種模式下,刪除分支後,會丟掉分支資訊。

$ git merge --no-ff -m "merge with no-ff" dev
多人協作的工作模式通常是這樣:

首先,可以試圖用git push origin branch-name推送自己的修改;

如果推送失敗,則因為遠端分支比你的本地更新,需要先用git pull試圖合併;

如果合併有衝突,則解決衝突,並在本地提交;

沒有衝突或者解決掉衝突後,再用git push origin branch-name推送就能成功!

如果git pull提示「no tracking information」,則說明本地分支和遠端分支的鏈結關係沒有建立,用命令git branch –set-upstream branch-name origin/branch-name。

這就是多人協作的工作模式,一旦熟悉了,就非常簡單。

小結

檢視遠端庫資訊,使用git remote -v;

本地新建的分支如果不推送到遠端,對其他人就是不可見的;

從本地推送分支,使用git push origin branch-name,如果推送失敗,先用git pull抓取遠端的新提交;

在本地建立和遠端分支對應的分支,使用git checkout -b branch-name origin/branch-name,本地和遠端分支的名稱最好一致;

建立本地分支和遠端分支的關聯,使用git branch –set-upstream branch-name origin/branch-name;

從遠端抓取分支,使用git pull,如果有衝突,要先處理衝突。

標籤為看。把其他的覺著重要的地方敲了一遍,感覺還是很有趣的。現在總結其實純粹是為了內推面試,有點點敷衍,希望內推可以成功吧!~

所以如果想要認真學習的小夥伴,還是去廖雪峰大大的部落格上認真學習吧,我的部落格只是為了今後什麼地方有忘記的方便自己檢視哈~~

GIT GIT 常用命令

切換分支 git checkout name 撤銷修改 git checkout file 刪除檔案 git rm file 檢視狀態 git status 新增記錄 git add file 或 git add 新增描述 git commit m miao shu nei rong 同步資料 gi...

GIT git常用命令

這裡我只寫幾個我經常用到的命令,用到的命令會持續更新。首先使用者配置,git提交時會引用這兩條資訊,用來說明是誰提交了 git config global user.name your name git config global user.email your email 初始化倉庫,相當於將乙個...

git git常用命令

設定提交 時的使用者資訊 git config global user.name name git config global user.email email address 檢視所有的已經做出的配置 git config list 在當前目錄初始化乙個git 庫 git init clone乙個...