Git經常使用命令

轉載請註明出處,創做不易:https://github.com/ZhengMaster2020/blogs/
關於Git是什麼東西想必你們應該知道它是個什麼東西,因此在這裏我就不過多地去嘮叨那麼多。如有不知請移步Git官網,在這裏我只想分享一下我本身平時用到的幾個經常使用的Git命令。git

初始化項目

$ git init : 表示咱們在當前的目錄下新建了一個Git代碼庫(它會在當前目錄下生成一個.git的文件夾裏面的文件是咱們遠程倉庫的文件)github

$ git init [file-name] : 表示咱們在當前的目錄下新建了一個Git代碼庫(它會在當前目錄下生成一個名爲file-name的文件夾,名字能夠本身隨意起,它會在file-name文件夾下生成一個.git文件夾)bash

$ git clone url :例如在打開gitbash 輸入 git clone git@github.com:ZhengMaster2020/blogs.git 它就會下載連接下的項目到咱們的當前目錄下,其中url連接既能夠是http協議的連接也能夠是ssh協議的連接ssh

增長文件和刪除文件

$ git add . : 注意add後面是英文的 . 表示吧當前目錄下的所有文件添加到暫存區(若有不懂這個這個是什麼東西的情看git官方文檔)編輯器

$git add [file-name1] [file-name2] ... : 中括號表示可選的意思, 咱們能夠添加指定的文件名的文件,添加多少依次就寫多少個文件名,那要添加的文件要添加到哪裏呢,沒錯又是這個暫存區,啊哈;fetch

$git add [dir-name] : 添加指定的文件目錄到暫存區,裏面的子文件目錄也會被添加到暫存區中url

$ git rm [file-name1] [file-name2] : 表示的是刪除指定的文件,這裏刪除的文件是工做區(不懂的話,仍是補文檔)中的文件blog

$ git rm --cache [file-name] : 表示的是中止跟蹤指定的文件,那麼該文件之後若是變更的話可能沒法及時更新rem

$git mv [文件當前名字] [文件更改後的名字] :表示的是更改文件名文檔

代碼提交到本地的倉庫

$git commit -m [message]: 將暫存區(也就是至關本地的一個臨時空間,咱們用add添加的文件通常先放到這裏使用commit以後再將文件存儲在本地倉庫裏)了的文件提交的本地的倉庫中,完成數據的持久性;

$git commit [file1] [file2]... -m : 將暫存去區指定的的文件提交到倉庫區,以便push之需,上傳到遠程的倉庫中(-m 中的m表是message就是每次提交相比以前作了什麼改動,是版本升級嗎仍是功能完善了嗎等等)

$git comm -a : 表示提交工做區距離上一次commit以後所作的變化,直接提交到倉庫中去,就不須要先提交到暫存區在提交到倉庫中去

$ git commit -v : 提交時顯示全部diff的信息(這裏它會打開vi編輯器來顯示信息,須要掌握Linux的文本編輯器的相關知識-命令模式-插入模式-底行命令模式)

分支(branch)相關命令操做(團多合做挺重要)

$ git branch -a :列出全部分支,不論是本地的仍是遠程的分支

$ git branch -r:列出全部遠程的分支,這裏的-r ,表的是remote的r,表示遠程意思

$ git branch:列出全部的本地分支

$ git branch [branch-name]:新建一個名爲branch-name的分支,可是仍是在當前的分支上卻沒有切換到新建的分支上

$ git merge [branch]:這個命令應該是使用較爲頻繁的一條,merge意思是合併的意思,因此啊,它表示的是把指定的分支合併到當前的分支上去

$ git branch -d [branch-name]:很少BB,這裏就是刪除個B ranch,刪除指定名爲branch-name的本地分支

$ git push origin --delete [branch-name]: 哇,這一條好長喔,成條粉腸甘長,其實呢就是刪除遠程的名爲branch-name的分支

查看信息

$ git status: status意思就是狀態的意思,因此它便表示顯示狀態信息,顯示什麼信息捏,就是有關變動文件的狀態信息嘛

$ git log:顯示當前分支的版本歷史

$ git log --stat: 顯示每次commit所發生變動的文件,和commit歷史記錄

$ git diff:顯示暫存區和工做區的差別,挺有用的一條命令

$ git diff --cache [file] :現實暫存區和上一個commit的差別

$ git diff HEAD:現實工做去與當前分支最新commit之間的差別

$ git diff --shortstat "@{0 day ago}": 這個有點吊了,就是顯示今天你本身寫多少行代碼,固然是在基於git文件下來統計的,都說一天一萬行的代碼量對應着每個月一萬元的工資,不知是真的捏仍是假的捏

遠程倉庫同步(這一部分很重要由於與咱們的GitHub息息相關)

$ git fetch [remote]:表示的是獲取(fetch就是獲取的意思)遠程倉庫的全部變更,並下載到本地目錄上,這其中的remote 就是咱們遠程倉庫名, 每一個人起的名字都不同,根據本身所填的遠程倉庫名的去填

$ git remote -v:顯示全部遠程倉庫

$ git remote show [remote]:顯示某個遠程倉庫的信息

$ git remote add [shortname] [url]:新增一個新得遠程倉庫名爲shortname,url爲遠程倉庫地址,具體要添加到哪裏

$ git pull [remote] [branch] :pull爲拉的意思, 表示取回遠程倉庫的變化,而且和本地的分支合併,(它與fetch有何區別呢?請你們自行思考)

$ git push [remote] [branch]:push意推的意思上傳本地倉庫指定分支到遠程倉庫, 其中remote爲遠程倉庫名稱, branch爲本地分支名稱

$ git push [remote] --force:force意思是迫使,強迫,表示強推本地分支到遠程倉庫,及時和遠程倉庫有衝突等狀況

$ git push [remote] --all : 一次性推送全部本地分支到遠程倉庫,有多少推多少

$ git checkout [file]:恢復暫存區的指定文件到工做區

$ git checkout . :恢復暫存區的全部文件到工做區

$ git reset --hard:重置暫存區與工做區,並於上一次commit的變化保持一致

$ git stash:暫時將爲提交的的變化移除

好了本次的分享心得就到這裏,關於git的使用命令仍是有不少滴,這些命令涉及到不少方面和功能,在平常生活如若須要用到其餘的命令咱們能夠自行再去網上搜索一下,沒必要把全部的命令都弄得很熟悉,熟悉經常使用的就行。還有其餘經常使用的命令我在更新。

相關文章
相關標籤/搜索