welcome to Cheeto's blog

0%

Git 常用指令

Git 常用指令

Git原理流程
來源:六角

工作目錄:是處理你現在處理檔案下的目錄,而 GIT 的相關操作都會在你路徑的目錄下完成。

索引:處於工作目錄、本地數據庫的中間 ( 如上圖 ),是提交到數據庫前的暫存區。

數據庫:是紀錄檔案、目錄狀態的地方,也會儲存內容的修改、歷史紀錄。
而數據庫又有分為 本地數據庫 、遠端數據庫。

  • 本地數據庫:自己方便使用,在個人電腦上配置的數據庫。
  • 遠端數據庫:配置專門的伺服器,為了能讓多人共享而建立的數據庫。

設定識別資料

輸入自己的資訊,目的是確認是誰上傳該版本的資料庫,這樣也比較方便做維護。指令如下

1
2
git config --global user.email "使用者email"
git config --global user.name "`使用者名字"

輸入完可以用 git config --list 確認,會出現結果如下。

config--list圖片
有出現user.name 、email 代表有輸入進去了! (紅色圈起來的)

基礎指令


移動路徑cd (路徑)

例:

前往C槽的指令 cd c:
回上一層的指令 cd ..
如果說C槽有一個 test 資料夾,裡面有一個 next 資料夾,想要前往的指令: cd test/next
甚至說也能夠直接把資料夾拉近 git bush 裡面,他也會自動幫你產生路徑!


展開列表:ls

  • 這個功能可以拿來檢查資料夾內的檔案,看看 ‘資料夾’、’檔案’ 是否新增成功。

新增檔案:touch

  • 如果說你想要在當前資料夾新增一個 index.html ,指令: touch index.html

新增資料夾:mkdir

  • 如果說你想要在當前資料夾新增一個 css 資料夾 ,指令: mkdir css

git init:是用來追蹤當前路徑的目錄,同時也建立一個本地數據庫。


git add .:把所有檔案加入索引。

如果想要只新增在當前目錄下的檔案,指令如下
例如 index.html,可以輸入 git add index.html
或者是 當前目錄下子資料夾裡的檔案 git add css/all.css 類似這樣。


git status:加入索引後用來檢查狀態的指令。


git commit -m ‘備註’:把索引裡面的東西提交到本地數據庫的指令。


git log:是查詢提交到本地數據庫的紀錄,用來檢查 commit 有沒有正確把指令傳送。


gitignore:在目錄下新增一個 .gitignore 的檔案,裡面輸入指令可以忽略檔案。

  • 例如:index.html 可以忽略 index.html檔案,*.html 可以忽略所有 html 檔案,
    css/ 可以忽略 css 資料夾裡所有檔案。

git reset –hard HEAD^:這個指令可以刪除最近一次的 commit。


git reset –hard ORIG_HEAD:如果 git reset –hard HEAD^ 刪除錯了,那這個語法可以還原它。

  • 在這邊也可以用 git reset [commit 的 sha-1] 來還原 !

git reset HEAD:把所有正在索引內的檔案取消索引。


git reset HEAD 檔案名稱:如果你指定的檔案在索引當中,指定的檔案取消索引。

  • 例如:git reset HEAD index.html 假設 index.html 現在索引內,那他會取消索引。

git reset –hard:可以把路徑目錄還原成最新一次 commit 的狀態,切記要先把所有檔案加入索引
git add .,否則檔案依然會留存。


git clone 網址:把你的遠端數據庫連接到你的本地數據庫。


git push:把你的本地數據庫裡的資料 傳送/更新 到你連接的遠端數據庫。


git pull:從遠端數據庫拉其他工程師更新的資料。



branch 分支


HEAD 是一個指標,指向某一個分支,也可以把 HEAD 當作目前所在分支看待。


git branch:查詢目前有哪些分支。


git branch -a:當你在新的工作環境要 pull 專案開發時,可以使用這個查分支,
因為pull下來用 git branch 查不到。


git branch 分支名稱:建構分支的指令。


git checkout 前四碼: 回到你想要觀看commit的版本,輸入版本編號前四碼,就可以回到那個版本觀看當時的CODE。


git checkout 分支名稱:可以回到你要看的分支。


git checkout 標籤名稱:可以回到你要看的標籤。


git checkout master:回到 master 分支。


git merge 分支名稱:可以把目前所在分支跟你輸入的分支合併。



tag 標籤


git tag:查詢目前有哪些標籤。


git tag 標籤名抽:這個指令可以新增一個標籤。例:git tag v1 ,等於新增一個 v1標籤。


git tag -am “備註” 標籤名稱:這個指令可以為標籤增加備註,可以用 git tag -n 來查,如果沒有標籤備註會顯示 commit 的備註。


git tag -n:可以查標籤的備註,或者是如果標籤沒有備註也會顯示 commit 的備註。


git tag -d:刪除指定的標籤。例如 :git tag -d v1 就會刪除 v1 標籤。


git checkout 標籤名稱:可以回到你要看的標籤。



stash 暫存


git stash:暫存當前的目錄。


git stash list:瀏覽所有 stash 的列表。


git stash pop:還原暫存。


git stash apply:還原最新的暫存。


git stash apply stash@{n}:指定還原的暫存版本。


git stash drop:刪除最新的暫存。例:有 {0}{1}{2} 的 stash,那輸入指令會把 {2} 刪掉。


git stash clear:刪除所有暫存。



remote 遠端數據庫


git remote:查詢遠端數據庫。


git remote rename 原名稱 新名稱:遠端數據庫預設名稱會是origin,這個指令可以修改遠端數據庫名稱。 例:git remote origin newName 就會把原本 origin 的遠端數據庫改名為 newName


git push:把你的本地數據庫裡的資料 傳送/更新 到你連接的遠端數據庫。


git push 遠端數據庫名稱 分支名稱:push 分支到遠端數據庫上。例:git push origin develop 就是把 develop push 到 origin 的遠端數據庫上。


git fetch:會移到一個名為 FETCH_HEAD 的分支,可以拿來合併。 pull 就是 fetch + merge 的組合技。