git 命令基本使用
1、git整體流程圖

2、公司代碼管理倉庫/自己的GitHub上的倉庫(遠程倉庫已經存在的情況下)
1、git clone 檢出遠程倉庫的地址
例如:git clone git@github.com:labuladong/fucking-algorithm.git
2、git pull 拉取遠程代碼到本地 (每次開發之前/每次merge提交之前 建議都git pull 一下遠程倉庫)
git pull [remoteName] [localBranchName]
可以直接git pull 默認拉取遠程地址的master分支
3、git branch 分支操作
查看本地分支:git branch
查看遠程分支:git branch -r

每次在開發時,建議自己在本地建一個分支dev,不要直接在master分支上操作。
創建新分支并立即切換到新分支: git checkout -b [name]
例如:git checkout -b dev

在切換到自己開發分支后,你可以愉快的開發了
----------- 開發開始 ---------
開發中
---------- 開發結束 ----------
4、查看狀態 git status
你想查看修改了那些文件,可以使用這個命令

5、添加文件到index
git add 文件名 或者目錄
例如:git add feature_1.txt

你可以像上面一個個添加文件到追蹤索引,也可以把全部的修改文件添加到追蹤索引
git add .
不建議偷懶這樣做,除非你很確定。
6、提交 git commit
git commit -m "消息"
例如:git commit -m "add context in file "

[tips]
第5、6這兩步可以合在一起
git commit -am "消息"
但是不建議這樣做,a表示所有的文件,容易把你不需要的文件也添加到追蹤了
7、查看當前分支的提交記錄 git log
例如:git log -n (n表示記錄個數,默認應該是20個,可以修改默認參數的,但是個人覺得沒有必要)

有提交日志表示之前的添加和提交都成功了。
8、回到主分支 && 拉取最新遠程代碼
git checkout master
git pull (養成好習慣)

9、merge你開發的分支代碼到主分支
git merge dev

10、推代碼到遠程服務端
git push

簡單的git代碼使用就差不多了。
11、還有以下回滾、git stash等操作。
git add 的后撤
所有文件
git reset HEAD .
單個文件
git reset HEAD - filename (- 可以去掉 直接文件名就可以了)

git commit 回滾
如果你只是提交的信息感覺需要修改或者錯誤了,你可以使用下面的命令修改即可
git commit --amend
會進入到vim 模式

如果是直接向撤銷commit。可以使用下面的參數
--soft
不刪除工作空間改動代碼,撤銷commit,不撤銷git add .
git reset --soft HEAD^

--hard
刪除工作空間改動代碼,撤銷commit,撤銷git add .
注意完成這個操作后,就恢復到了上一次的commit狀態。
如果是想退到某個提交上。可以直接使用
git reset --hard commitID

HEAD^ 第一個CommitID
HEAD^^ 第二個CommitID
以此類推
stash:
git stash list
git stash push 將文件給push到一個臨時空間中
git stash pop 將文件從臨時空間pop下來
(1)git stash save "save message" : 執行存儲時,添加備注,方便查找,只有git stash 也要可以的,但查找時不方便識別。
(2)git stash list :查看stash了哪些存儲
(3)git stash show :顯示做了哪些改動,默認show第一個存儲,如果要顯示其他存貯,后面加stash@{$num},比如第二個 git stash show stash@{1}
(4)git stash show -p : 顯示第一個存儲的改動,如果想顯示其他存存儲,命令:git stash show stash@{$num} -p ,比如第二個:git stash show stash@{1} -p
(5)git stash apply :應用某個存儲,但不會把存儲從存儲列表中刪除,默認使用第一個存儲,即stash@{0},如果要使用其他個,git stash apply stash@{$num} , 比如第二個:git stash apply stash@{1}
(6)git stash pop :命令恢復之前緩存的工作目錄,將緩存堆棧中的對應stash刪除,并將對應修改應用到當前的工作目錄下,默認為第一個stash,即stash@{0},如果要應用并刪除其他stash,命令:git stash pop stash@{$num} ,比如應用并刪除第二個:git stash pop stash@{1}
(7)git stash drop stash@{$num} :丟棄stash@{$num}存儲,從列表中刪除這個存儲
(8)git stash clear :刪除所有緩存的stash
pop和apply都是應用,且可以選擇應用哪一個,唯一的區別是前者應用且刪除,后者只應用不刪除
git status可以參考:https://www.jianshu.com/p/cddbcbdcc600
[tips] 沒有在git 版本控制中的文件,是不能被git stash 存起來的
Git 常用命令
git branch 查看本地所有分支
git status 查看當前狀態
git commit 提交
git branch -a 查看所有的分支
git branch -r 查看本地所有分支
git commit -am "init" 提交并且加注釋
git remote add origin git@xxx.xxx.xxx
git push origin master 將文件給推到服務器上
git remote show origin 顯示遠程庫origin里的資源
git push origin master:develop
git push origin master:hb-dev 將本地庫與服務器上的庫進行關聯
git checkout --track origin/dev 切換到遠程dev分支
git branch -D master develop 刪除本地庫develop
git checkout -b dev 建立一個新的本地分支dev
git merge origin/dev 將分支dev與當前分支進行合并
git checkout dev 切換到本地dev分支
git remote show 查看遠程庫
git add .
git rm 文件名(包括路徑) 從git中刪除指定文件
git clone xxxxxxx.git 從服務器上將代碼給拉下來
git config --list 看所有用戶
git ls-files 看已經被提交的
git rm [file name] 刪除一個文件
git commit -a 提交當前repos的所有的改變
git add [file name] 添加一個文件到git index
git commit -v 當你用-v參數的時候可以看commit的差異
git commit -m "This is the message describing the commit" 添加commit信息
git commit -a -a是代表add,把所有的change加到git index里然后再commit
git commit -a -v 一般提交命令
git log 看你commit的日志
git diff 查看尚未暫存的更新
git rm a.a 移除文件(從暫存區和工作區中刪除)
git rm --cached a.a 移除文件(只從暫存區中刪除)
git commit -m "remove" 移除文件(從Git中刪除)
git rm -f a.a 強行移除修改后文件(從暫存區和工作區中刪除)
git diff --cached 或 $ git diff --staged 查看尚未提交的更新
git stash push 將文件給push到一個臨時空間中
git stash pop 將文件從臨時空間pop下來
---------------------------------------------------------
git remote add origin xxxxxx.git
git push origin master 將本地項目給提交到服務器中
-----------------------------------------------------------
git pull 本地與服務器端同步
-----------------------------------------------------------------
git push (遠程倉庫名) (分支名) 將本地分支推送到服務器上去。
git push origin serverfix:awesomebranch
------------------------------------------------------------------
git fetch 相當于是從遠程獲取最新版本到本地,不會自動merge
git commit -a -m "log_message" (-a是提交所有改動,-m是加入log信息) 本地修改同步至服務器端 :
git branch branch_0.1 master 從主分支master創建branch_0.1分支
git branch -m branch_0.1 branch_1.0 將branch_0.1重命名為branch_1.0
git checkout branch_1.0/master 切換到branch_1.0/master分支
du -hs
-----------------------------------------------------------
mkdir WebApp
cd WebApp
git init
touch README
git add README
git commit -m 'first commit'
git remote add origin xxxx.git
git push -u origin master
分支共有5種類型
1) master,最終發布版本,整個項目中有且只有一個
2) develop,項目的開發分支,原則上項目中有且只有一個
3) feature,功能分支,用于開發一個新的功能
4) release,預發布版本,介于develop和master之間的一個版本,主要用于測試
5) hotfix,修復補丁,用于修復master上的bug,直接作用于master
切換遠程倉庫地址
查看遠程倉庫地址
git remote -v
例如:

注:本文中的url全部需根據自身情況修改
1、直接修改遠程倉庫地址
git remote set-url origin url
2、刪除本地遠程倉庫地址,然后添加新的倉庫地址
git remote rm origin
git remote add origin url
3、修改配置文件
每個倉庫在初始化時,都會有一個 .git 的隱藏目錄,修改其中的 config 文件中的 url

git在線練習
如果對git不熟悉的話,請在線練習git命令,傳送門--------->git分支練習
git 提交規范
規范參考鏈接為:
Git 協同與提交規范
Git commit message規范

浙公網安備 33010602011771號