1、初次使用git必用命令
git config 第一次使用git或者剛安裝的git時,使用此命令設置身份Name 和 Eamail 地址。并且每次提交時會使用此信息
git config --global user.name "用戶名" git config --global user.email 郵箱
git version 檢查當前使用的git版本號
git version git -v
2、操作遠程倉庫命令
git init 初始化倉庫創建新項目使用該命令進行項目初始化,創建一個空白的存儲庫,用于存儲源代碼
git init
git clone 克隆存儲庫命令,將遠程倉庫代碼克隆到本地
git clone 和git init區別
將尚未進行版本控制的本地目錄轉換為 Git 倉庫;
從其它服務器克隆一個已存在的 Git 倉庫。
git clone ” 遠程倉庫url “
git add 命令會把所有的代碼文件或修改后的文件添加到存儲庫中。此命令提供了添加文件和文件夾的不同選項。
git add * //添加所有文件到暫存區 git add . //添加所有文件到暫存區 git add -u . //-u 表示將已跟蹤文件中的修改和刪除的文件添加到暫存區,不包括新增加的文件 git add -A . //-A 表示將所有的已跟蹤的文件的修改與刪除和新增的未跟蹤的文件都添加到暫存區 git add *.html git add *.txt //添加某個文件類型到暫存區,比如所有的 .html 文件 git add index/ //添加整個文件夾到暫存區,比如index文件夾 git add index/index.html //添加某個文件或者某個文件夾中的某個文件到暫存區 ,比如 index 下的 index.html 文件
git commit將工作區內容或暫存區內容提交到版本庫
# 將暫存區內容提交到版本庫, 進入 vi 命令界面輸入提交信息 git commit # 將某些已被跟蹤的文件提交到版本庫(包含工作區和版本庫) git commit [file1] [file2] [...] # 將暫存區內容提交到版本庫, 無需進入 vi 命令界面輸入提交信息 git commit -m [message] # 跳過 git add, 將所有已被跟蹤的文件更改提交到版本庫 git commit -am [message] # 使用一次新的commit, 替代上一次提交 # 如果代碼沒有任何新變化, 則用來改寫上一次commit的提交信息 git commit --amend -m [message]
git status 顯示暫存區文件和當前 HEAD 提交之間有差異的路徑,工作區和暫存區文件之間有差異的路徑,以及工作區中沒有被 Git 跟蹤的路徑 (也沒有被 gitignore 忽略) 。
git status [<選項> …] [--] [<路徑名> …] //[ ] 表示可選,...表示可以有多項。
git branch命令主要用來處理跟分支有關系的功能,比如創建分支、刪除分支、查看本地分支、查看遠程分支等
git branch //查看本地分支 git branch -v //查看本地分支+上次提交的信息 git branch -vv //查看本地分支+上次提交的信息+本地和遠程分支的關系 git branch -vv -a //查看本地分支+上次提交的信息+本地和遠程分支的關系+遠程分支 (如果不想顯示提交的信息,也可以去掉-vv參數) git branch -r //只查看遠程分支 git branch -d (branchName) //刪除本地分支 git push <主機名> -d <分支名>git push <主機名> --delete <分支名>git push <主機名> :<分支名> //刪除遠程分支 git checkout (branchName) //切換本地分支 git branch (branchName) //創建本地分支git checkout -b (branchName) //創建本地分支并切換 git push <遠程主機名> <本地分支名>:<遠程分支名> //創建遠程分支
git checkout 本意是檢出的意思,也就是將某次commit的狀態檢出到工作區;所以它的過程是先將HEAD指向某個分支的最近一次commit,然后從commit恢復index,最后從index恢復工作區。
git checkout (branchName) git checkout -b (branchName)
3、git進階
git remote 如果需要與遠程倉庫鏈接,必須使用此命令。此命令會將本地存儲庫連接到遠程。
git remote git remote -v | --verbose git remote add url git remote rm name git remote rename old_name new_name
git push令用于從將本地的分支版本上傳到遠程并合并
git push <遠程主機名> <本地分支名>:<遠程分支名> //將本地的分支版本上傳到遠程并合并 git push <遠程主機名> <本地分支名> //如果本地分支名與遠程分支名相同,則可以省略冒號 以下命令將本地的 master 分支推送到 origin 主機的 master 分支 $ git push origin master === git push origin master:master 如果本地版本與遠程版本有差異,但又要強制推送可以使用 --force 參數 $ git push --force origin master 刪除主機的分支可以使用 --delete 參數,以下命令表示刪除 origin 主機的 master 分支 $ git push origin --delete master
git push --set-upstream先把本地的當前分支推送到遠程倉庫origin的main分支,然后把本地的當前分支關聯到遠程倉庫origin的main分支
git push --set-upstream
git fetch是將遠程主機的最新內容拉到本地,用戶在檢查了以后決定是否合并到工作本機分支中
git fetch <遠程主機名> //這個命令將某個遠程主機的更新全部取回本地 如果只想取回特定分支的更新,可以指定分支名 git fetch <遠程主機名> <分支名> //注意之間有空格
git pull取回遠程主機某個分支的更新,再與本地的指定分支合并
git pull [options] [[ …]] $ git pull <遠程主機名> <遠程分支名>:<本地分支名> 要取回origin主機的next分支,與本地的master分支合并,需要寫成下面這樣 $ git pull origin next:master 如果遠程分支(next)要與當前分支合并,則冒號后面的部分可以省略。上面命令可以簡寫為 $ git pull origin next 上面命令表示,取回origin/next分支,再與當前分支合并。實質上,這等同于先做git fetch,再執行git merge。 $ git fetch origin $ git merge origin/next 在某些場合,Git會自動在本地分支與遠程分支之間,建立一種追蹤關系(tracking)。比如,在git clone的時候,所有本地分支默認與遠程主機的同名分支,建立追蹤關系,也就是說,本地的master分支自動”追蹤”origin/master分支。Git也允許手動建立追蹤關系 $ git branch --set-upstream master origin/next 上面命令指定master分支追蹤origin/next分支。如果當前分支與遠程分支存在追蹤關系,git pull就可以省略遠程分支名 $ git pull origin 上面命令表示,本地的當前分支自動與對應的origin主機”追蹤分支”(remote-tracking branch)進行合并。如果當前分支只有一個追蹤分支,連遠程主機名都可以省略 $ git pull 上面命令表示,當前分支自動與唯一一個追蹤分支進行合并。如果合并需要采用rebase模式,可以使用–rebase選項。 $ git pull --rebase <遠程主機名> <遠程分支名>:<本地分支名> git fetch和git pull的區別 git fetch:相當于是從遠程獲取最新版本到本地,不會自動合并。 git pull:相當于是從遠程獲取最新版本并merge到本地
git stash會把所有未提交的修改(包括暫存的和非暫存的)都保存起來,用于后續恢復當前工作目錄
git stash save "test-cmd-stash" //存儲一個test-cmd-stash到本地存儲列表git stash list //查看緩存列表 git stash pop //恢復之前緩存的工作目錄,這個指令將緩存堆棧中的第一個stash刪除,并將對應修改應用到當前的工作目錄下 git stash apply //將緩存堆棧中的stash多次應用到工作目錄中,但并不刪除stash拷貝git stash list //查看現有stash git stash drop //移除stash git stash show //查看指定stash的diff
git log 查看所有之前的提交,最近的提交出現在最前面。
git log [] [ .. ] [[--] ...]
常用參數
-p:
按補丁格式顯示每個更新的差異,比下一條--stat命令信息更全。
--stat:
顯示每次提交修改文件的統計信息,每個提交都列出了修改過的文件,以及其中添加和移除的行數,并在最后列出所有增減行數小計。
--shortstat:
只顯示--stat中最后的行數添加、修改、刪除的統計。
--name-only:
僅在提交信息后,顯示已修改的文件清單。
--name-status:
顯示新增、修改、刪除的文件清單。
--abbrev-commit:
僅顯示SHA-1校驗和的前幾個字符,而非所有的40個字符。
--relative-date:
使用較短的相對時間,而不是完整格式顯示日期(比如“2 weeks ago”)。
--graph:
在日志旁以ASCII圖形顯示分支與合并歷史。
--online:
列表的形式查看歷史版本記錄,--pretty=oneline --abbrev-commit合用的簡寫。
--pretty:
使用其他格式顯示歷史提交信息。
可用的選項包括oneline、short、full、fuller和format(用來定義自己的格式)
git shortlog 命令會顯示來自 git log 命令的摘要。如果只對簡短的摘要感興趣,此命令就非常有用了。
git shortlog [] [ ] [[--] …] git log --pretty=short | git shortlog [ ]
4、git高級命令
git rebase 可以提取我們在A分支上的改動,然后應用在B分支的代碼上
git rebase -i [startpoint] [endpoint] //-i的意思是--interactive,即彈出交互式的界面讓用戶編輯完成合并操作
gitrebase和git rebase
git merge:當需要保留詳細的合并信息的時候建議使用,特別是需要將分支合并進入master分支時
git rebase:當發現自己修改某個功能時,頻繁進行了git commit提交時,發現其實過多的提交信息沒有必要時使用,分支多,內容多時也可以考慮使用
git bisect 命令可以幫助查找糟糕的提交。
git bisect
git cherry-pick"挑揀"提交,它會獲取某一個分支的單筆/多筆提交,并作為一個新的提交引入到你當前分支上
git cherry-pick//將指定的提交(commit)應用于其他分支 轉移多個提交 git cherry-pick 轉移到另一個代碼庫 git remote add target git://gitUrl 上面命令添加了一個遠程倉庫target。然后,將遠程代碼抓取到本地。 git fetch target 上面命令將遠程代碼倉庫抓取到本地。接著,檢查一下要從遠程倉庫轉移的提交,獲取它的哈希值 git log target/master 最后,使用git cherry-pick命令轉移提交 git cherry-pick
git blame追溯一個指定文件的歷史修改記錄
git blame [filename] git blame的具體顯示格式是 commit ID (代碼提交作者 提交時間 代碼位于文件中的行數) 實際代碼
git tag主要用于發布版本的管理,一個版本發布之后,我們可以為git打上 v.1.0.1 v.1.0.2 ...這樣的標簽
git tag//創建本地tag git push origin //推送到遠程倉庫 若存在很多未推送的本地標簽,你想一次全部推送的話: git push origin --tags 以上是基于本地當前分支的最后的一個commit 創建的 tag ,但是如果不想以最后一個,只想以某一個特定的提交為tag ,也是可以的,只要你知道commit 的id。 git log --pretty=oneline //查看當前分支的提交歷史 里面包含 commit id git tag -a git show 查看本地所有 tag: git tag 或者 git tag -l 查看遠程所有 tag: git ls-remote --tags origin 本地 tag 的刪除: git tag -d 遠程 tag 的刪除: git push origin :refs/tags/
git verify-commit使用 GPG、SSH 或 S/MIME,您可以在本地對標簽和提交進行簽名
git verify-commit
git verify-tag檢查標簽的 GPG 簽名
git verify-tag [--format=] …
git diff比較文件的差異
情景一:查看工作區和暫存區之間文件的差異 git diff 命令,默認查看的就是 工作區 和 暫存區之間文件的差異 1.git diff : 查看工作區和暫存區之間所有的文件差異 2.git diff 3.git diff 【注意】:查看具體文件的時候 情景二:查看工作區和版本庫之間文件的差異git diff HEAD : 查看工作區與最新版本庫之間的所有的文件差異 git diff 具體某個版本 : 查看工作區與具體某個提交版本之間的所有的文件差異 git diff HEAD git diff HEAD git diff 具體某個版本 git diff 具體某個版本 情景三:查看暫存區和版本庫之間文件的差異git diff git diff git diff git diff 情景四:查看不同版本庫之間文件的差異git diff 版本號1 版本號2 :查看兩個版本之間的差異 git diff 版本號1 版本號2 git diff 版本號1 版本號2 git diff 版本號1 版本號2 src : 查看兩個版本之間的文件夾 src 的差異
git citool 基于 Tcl / Tk 的圖形界面用于查看修改后的文件,將它們放入索引,輸入提交消息并將新提交記錄到當前分支。該接口是交互程序較少的替代git commit方案
git citool
-
命令
+關注
關注
5文章
684瀏覽量
22026 -
源代碼
+關注
關注
96文章
2945瀏覽量
66747 -
Git
+關注
關注
0文章
199瀏覽量
15761
原文標題:git的必會的基本操作
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論