git實用命令(不斷更新中…)
git是一個分佈式版本控制系統。前端開發時,git也是一個我們繞不開的工具,它可以幫助我們方便地上傳、更新自己的項目代碼。git是通過執行命令行來工作的,它的命令也特別多,下面將常用到的git命令總結如下:
1、打開d盤命令:
cd d:
2、新建一個名爲src的文件夾
mkdir src
3、新建一個index.html文件
touch index.html
4、返回上一級
cd ..
5、顯示當前目錄下的所有文件
ls
6、清空git終端屏幕上所有的命令行及其運行結果顯示
clear
7、克隆github上easy-webpack-vue項目
git clone https://github.com/xm2by/easy-webpack-vue.git
git clone後面跟項目地址
8、項目提交時的一系列操作
// 查看本地項目狀態
git status
//追蹤新文件、將追蹤的文件放入到暫存區
git add .
//提交更新
git commit -m '描述此次提交的簡介'
//將項目推送到網上倉庫
git push
9、對於多人合作開發一個項目,在提交項目時,需先查看其他人是否修改過的項目,如果修改過,需要將其他人修改過的內容更新到自己本地項目,然後再提交。
git pull
10、git pull之後出現git界面不管按什麼都沒反應,解決方法有兩種:
-
1、暴力關掉git,重新打開;
-
2、在沒有反應的git界面輸入
:wq
,然後按回車,這是比較優雅且高大上的解決方法;
11、切換主幹、分支
git checkout 'master/分支名'
實踐案例:我們組內有這樣一個規定:項目中新需求開發的代碼要提交到主幹上,而缺陷(bug)修復的代碼要提交到最新的分支上,有一次,我接到一個新的需求開發,開發之前沒看本地上的代碼是分支上的還是主幹上的,就直接開幹,開發完之後準備提交代碼,這時候一看發現怎麼是在分支上開發的,瞬間就傻眼了,如果在開發之前我就切換到主幹上,這時候,我只需要git status -> git add . ->git commit-m ‘描述’ -> git push就完事了,可是現在是在分支上,這可咋辦啊?事前不git checkout,事後還得要git checkout。最佳解決方法:不要在分支上做任何提交,直接切換主幹,切換到主幹後,在分支上修改、新增的代碼都會被切換到主幹上,這種切換它屬於將未提交的代碼整體搬移過來,這樣就可以git status -> git add . ->git commit-m ‘描述’ -> git pull -> git push將新開發的代碼提交到主幹上。
12、git add -u 將文件的修改、刪除添加到暫存區,新建的文件不會被添加
一般在提交代碼前都會進行git status這個操作,之後會顯示哪些文件被修改了,哪些被刪除了,哪些新增的並提示這些新增的文件還沒有被追蹤(即它們是untracked狀態),git add -u就是將tracked狀態的代碼添加,untracked狀態的代碼不添加。
13、git commit後想取消某次提交
// 不刪除我們已改動的代碼,撤銷commit,不撤銷git add . 操作
git reset --soft
// 不刪除我們已改動的代碼,撤銷commit,並且撤銷git add . 操作
git reset --mixed
// 刪除我們已改動的代碼,撤銷commit,並且撤銷git add . 操作
git reset --hard
14、git commit註釋信息寫錯了,如何修改:
// 此時會進入默認vim編輯器,修改註釋完畢後通過esc退出編輯模式,再輸入:wq退出即可
git commit --amend
15、git提交文件時,是否需要區分文件名大小寫:
當遠程倉庫存在一個名爲tempFile
文件,本地將該文件名修改爲TempFile
時,如果設置文件名不區分大小寫,則git認爲這兩個文件爲同一個文件,不會將本地修改後的文件名更新到遠程倉庫,如果設置文件名區分大小寫,則git會將修改文件名後的文件看做是新增文件,原來的文件會被刪除,即修改後的文件名會更新到遠程倉庫。
// 文件名要區分大小寫
git config core.ignorecase false
// 文件名不需要區分大小寫
git config core.ignorecase true
16、git add後想撤銷怎麼辦?
// 撤銷最近一次git add
git reset HEAD
17、查看本地分支
git branch
18、查看遠程分支
git branch -r