Git命令大全【建議收藏】
前言
其實在很久之前想寫這個文章,但是吧,又覺得這個東西大家都是最常用的,應該大家都比較熟悉,但是呢,在實際工作中還是有很多人不太會使用使用Git命令行,或者連Git的客戶端工具都不太會使用,可怕
其實這個東西如果只是用來工作中的開發使用,倒也是沒必要去為之買本書而研究,只需要稍微理解原理,學會使用常用命令即可
本文假設的是大家有一定的Git基礎,這一篇的作用是介紹Git的命令行,解釋每個的命令的作用
我這篇文章默認大家對Git是有一定了解的,也就是關于上面這些理論啥的大概應該是懂得,我也就不多啰嗦了,個人操作的是工作區,add之后會提交到一個暫存區stage,commit之后會提交到本地倉庫,push是提交到遠程倉庫
Git是世界上目前最先進的分布式版本控制系統,為的就是解決那種多人協作、多次修改的問題
最順利提交
先來給大家熟悉下Git的倉庫的劃分情況:Git是目前世界上最先進的分布式版本控制系統(沒有之一)。
先來給大家熟悉下Git的倉庫的劃分情況:Git是目前世界上最先進的分布式版本控制系統(沒有之一)。
配置和創建版本庫、分支命令、tag命令、修改和提交、撤銷、查看歷史、
配置和創建版本庫
查看配置:git config --list
配置/修改用戶名:git config --global user.name "name"
配置/修改郵箱:git config --global user.email "email"
檢出倉庫:git clone git://github.com/jquery/jquery.git
查看遠程倉庫:git remote -v
添加遠程倉庫:git remote add [name] [url]
刪除遠程倉庫:git remote rm [name]
拉取遠程倉庫:git pull [remoteName] [localBranchName]
推送遠程倉庫:git push [remoteName] [localBranchName]
分支命令
查看遠程所有分支:git branch -r
查看本地所有分支:git branch
查看所有分支:git branch -a
創建本地分支:git branch [name] 創建后需要手動切換分支
創建遠程分支:git push origin [name]
創建新分支并且立即切換到新分支:git checkout -b [name]
切換分支:git checkout [name]
刪除本地分支:git branch -d/-D [name] -D用來強制刪除 -d只能刪除已經參與了合并的分支,對于未有合并的分支是無法刪除的
刪除遠程分支:git push origin --delete [name]
強制覆蓋本地代碼:git fetch --all && git reset --hard origin && git pull
合并分支:git merge [name] 將name分支合并到當前分支
查看當前狀態:git status
tag命令
查看版本:git tag
創建版本:git tag [name]
刪除版本:git tag -d [name]
查看遠程版本:git tag -r
創建遠程版本:git push origin [name]
刪除遠程版本:git push origin --delete [name]
合并遠程倉庫的tag到本地:git pull origin --tags
上傳本地tag到遠程倉庫:git push origin --tags
創建帶注釋的tag:git tag -a [name] -m 'message'
修改和提交代碼
查看狀態:git status
查看變更內容:git diff
添加修改文件到暫存區:git add [file]
添加所有修改文件到暫存區:git add .
文件改名:git mv [old] [new]
刪除文件:git rm [file]
提交所有暫存區文件到本地倉庫:git commit -m 'message'
修改最后一次提交:git commit --amend
推送本地倉庫到遠程倉庫:git push origin [name]
合并分支代碼:git merge [name] 將name分支合并到當前分支
撤銷代碼
對某個文件的add撤銷:git reset HEAD xxx.java
對所有文件的add撤銷:git reset HEAD
對文件的commit撤銷:git reset --hard HEAD
git reset [--mixed --soft --hard] commitID有三種參數,熟悉這三個參數的含義
--mixed代表撤銷git add和git commit的操作,保留編輯器的代碼;
--soft代表撤銷git commit,不撤銷git add操作,同時保留編輯器的代碼;
--hard參數很暴力,直接撤銷commit和add的操作,撤銷所有改動的代碼,當你決定用--hard參數的時候,就代表著你應該已經決定了放棄修改過的所有代碼咯
push操作的撤銷:git reset commitID / git revert commitID
reset則是回到某次提交,此次提交以及之前的Commit都會被保留,但是此次之后的修改都會被退回到暫存區
revert則是生成一次新的Commit提交來撤銷某次提交,此次提交之前的Commit都會被保留,可以理解成把相應版本的代碼刪除掉,再次提交
查看信息
查看當前分支的版本和歷史:git log
顯示commit歷史,以及每次Commit的發生變更的文件:git log --stat
根據關鍵字搜索提交歷史:git log -S [keyword]
顯示某個文件的版本歷史,包括文件改名:git log --follow [file]
顯示過去五次的提交:git log -5 --pretty --oneline
顯示所有提交過的用戶,按照提交次數排序:git shortlog -sn
顯示指定文件是什么人在什么時間修改過:git blame [file]
顯示暫存區和工作區的差異:git diff
顯示當前分支的最近幾次提交:git reflog
新建Git代碼庫:git init
查看當前文件狀態:git status
遠程同步
下載遠程倉庫的所有變動:git fetch [remote]
顯示所有遠程倉庫:git remote -v
顯示某個遠程倉庫的信息:git remote show [remote]
增加一個新的遠程倉庫并命名:git remote add [shortname] [url]
上傳本地指定分支到遠程倉庫:git push [remote] [branch]
強行推送當前分支到遠程倉庫:git push [remote] --force
推送所有分支到遠程倉庫:git push [remote] --all