git 命令初學(一)

2021-08-28 06:26:03 字數 3863 閱讀 1365

mac下如何把本地專案上傳到git上:

hot fix:

git status  檢視檔案處於什麼狀態

echo myproject > readme 在myproject檔案下建立乙個readme檔案

git init. 建立乙個本地倉庫

gitadd file ,將檔案新增進快取區(stage) 此時用git status檢視,狀態是『changes to be committed』+ 'modified:檔名 '表示有改動的是那個檔案

git add .    將所有更改檔案新增進快取區

git commit -m 將所有當前快取區的內容一起提交到當前分支本地倉庫 如果需要更新到遠端倉庫還需要push

git commit -a -m 

或者 git commit -am 

相當於將add和commit兩步結合啦:將本地所有修改檔案提交到快取區並提交

git diff 檢視修改內容

git diff head -- readme.txt 用來檢視當前工作區與版本庫里readme.txt檔案最新版本的區別 head指當前工作區分支

git log 各次提交的記錄 顯示各次提交時的message註解 加上 --pretty=oneline 引數,會簡短的每行輸出一條 每一次的記錄前面都有一串很長的commit——id用來每一次提交的版本

git reset --hard head^ 返回上乙個版本 head表示當前分支的當前的版本,每多乙個^表示之前的乙個版本 所以head^^就是上上個版本

或者 git reset --hard commit_id 直接回到某個版本號(版本號很長,不用寫全,大概寫個前幾位,git會自動去找的)。當返回上一版,再git log時,會發現列印不出剛才的最新版了,此時就可以通過這第二種使用版本號的方法,重新回退到那個版本(前提是還沒有關閉終端,能找到commit_id)

git push -f 或者 git push --force 將回退後的版本強制更新上傳

git reset head file 將放進快取區的檔案撤銷掉(unstage),重新放回工作區. 此時執行過後,會提示『unstaged changes after reset』+檔名,此時再git status檢視狀態,會提示『changes not staged for commit』,接下來的操作可以重新add或者把工作區的也撤銷git checkout -- file

git reflog 記錄曾經輸入過的命令 (這樣即使關閉了終端,之前的commit_id也能找回來)

git checkout -- file檔名 撤銷這個檔案file的在工作區的修改(注意中間一定有--,不然就會變成另乙個命令) 兩個情況:1.修改後,還沒有add,此時就是在工作區,那麼執行這個命令,這次修改就會取消,回到倉庫上的最新版本。 2,已經 add,還沒有commit,也沒有再更改,此時檔案在快取區,這個時候執行命令,並不會撤銷修改,因為此時工作區沒有內容  3,已經commit了,這時工作區也沒有內容,也不會撤銷

rm file 刪除工作區檔案 此時工作區和倉庫就有了不同 ,用git status 可檢視刪除了哪些檔案

git rm file 刪完本地後又想刪除倉庫裡的該檔案 之後需要commit一下

git checkout -- file 如果誤刪了工作區的本地檔案,這個命令用於把版本庫里的最新版本複製乙份到工作區,所以無論工作區是修改了還是刪除了,都可以用這個命令『一鍵還原到最新版本』

git branch 分支名  從當前分支建立乙個分支 例如git branch develop.

git checkout 分支名  切換到某分支 

git checkout -b 分支名.  用-b引數,表示從當前分支上建立並切換到分支

git checkout -b 分支名1 origin/遠端分支名2  把遠端庫里的某分支名2 建立在本地命名為分支名1

git branch  檢視當前分支

git merge 分支名  將分支快速合併到當前分支。 例如當前是master  git merge develop執行之後,就是把dev的內容同步到master了;

git merge --no-ff 保留分支的commit歷史

git merge --no-ff -m'註解'  表示禁用fast forward格式地合併,並且會產生乙個commit, -m '註解' 這個引數和單獨用commit -m '註解' 一樣

git branch -d 分支名。 刪除某分支  例如刪除了dev,此時看git branch 結果是master 因為develop被刪除了

git branch -d 分支名  強行刪除某分支 當新建的分支還沒有被合併就被刪除時,用-d會提示錯誤,用-d可以強行刪除

git log --graph --pretty=oneline --abbrev-commit  

檢視分支合併圖

git stash  儲存當前分支的『工作現場』,

git stash list  檢視當前所有儲存的『工作現場』  結果格式:stash@:win on dev:f8743 add merge

git stash drop 某   刪除已經恢復完的stash

git stash pop  恢復工作現場後直接刪除 此時再用git stash list 應該查不到stash了

git remote -v  檢視遠端庫的資訊 -v引數可選,現實詳細資訊

git branch --set-upstream-to=origin/遠端分支名 本地分支名  將本地的分支與遠端庫分支建立關聯

git pull  從與當前分支建立聯絡的遠端庫分支上拉取最新的提交

git pull origin 遠端分支名:本地分支  

其中 origin 是遠端庫的預設名稱 

將遠端分支與本地分支merge 如果是與當前分支合併,冒號和本地分支名可以省略

git push origin 本地分支名:遠端分支名  把本地分支推送到遠端庫中的對應分支 其中 origin 是遠端庫的預設名稱 ,分支名是master或自定義的分支名。一般,預設分支master和開發分支都要與遠端庫保持同步,修復bug分支等可以不這樣,前提是已經commit之類的都完成了

git tag 自定義標籤名  給當前分支

最新的一次提交打上標籤名

git tag 自定義標籤名 commit_id    給對應的某次提交打上標籤。用git log可以檢視所有提交過的commit_id

git tab -a 指定的標籤名  -m '指定說明文字' commit_id.     在某次提交上建立帶有說明資訊的標籤

git tag.   檢視所有標籤。按字母牌訊

git show  標籤名      顯示詳細的標籤資訊

hotfix熱修復分支:

使用場景:生產環境master有bug,但是開發分支develop還不穩定,需要從master拉取乙個修復bug分支,最終必須合併回develop和master

git checkout -b hotfix-master 從master上拉取乙個熱修復分支

git commit -a -m 在hotfix分支正常修改後提交

git checkout master 

git merge --no-ff hot-切換回master分支後把熱修復分支合併 之後也要合回develop。規則的乙個例外是:如果乙個release分支已經存在,那麼應該把hotfix合併到這個release分支,而不是合併到develop分支。當release分支完成後, 將bugfix分支合併回release分支也會使得bugfix被合併到develop分支。(如果在develop分支的工作急需這個bugfix,等不到release分支的完成,那你也可以把bugfix合併到develop分支)

git tab -a 《版本號》

git branch -d 

hotfix-刪除臨時分支

初學git,命令筆記

git config global user.name your name git config global user.email email example.com global引數,表示你這台機器上所有的git倉庫都會使用這個配置,當然也可以對某個倉庫指定不同的使用者名稱和email位址。請確...

Git初學筆記 一

看了好多git的配置,歸納總結下,以免之後電腦重灌,又要到處找一遍資料。記錄在此,以備忘。git中輸入如下命令 git config global user.name chenjj2048 git config global user.email chenjj2048 foxmail.com 如果想...

git基本命令 初學git github

雖說是基礎命令,但是幾乎涵蓋了所有git相關的命令 git命令 hash採用的是sha 1加密演算法 注 控制面板中的憑據管理器可以刪除git賬戶登入資訊 ls la 檢視隱藏檔案 注 在linux中以 開頭的檔案都是隱藏檔案 pwd 檢視當前目錄 cat filename 一次性顯示整個檔案 gi...