1. 程式人生 > >Git - 01- 常用命令 + Git 遠端倉庫使用

Git - 01- 常用命令 + Git 遠端倉庫使用

Git - 01- 常用命令 + Git 遠端倉庫使用

學習 Git ,推薦教程:Git教程 - 廖雪峰,原文較複雜,且示例是在 MAC 系統,本篇側重 Windows 系統,收錄常用命令及日常操作,基本使用的話,這一篇文章就夠了。

準備:
安裝 Git ,前往官網下載:https://git-scm.com/downloads
建立目錄,用來存放專案,在終端/cmd 進入該目錄

Git 常用基礎命令

0.只用 git 命令,用來檢視是否安裝成功、及一些常用命令含義

git

1.初始化 git 版本控制系統(每個專案只執行一次)

git init

2.配置本機身份資訊(–global 表示你這臺機器上所有的Git倉庫都會使用這個配置)

git config --global user.name "Xiao Pengwei"
git config --global user.email "[email protected]"

3.新增檔案(檔名為 readme.txt,不加引號)

git add readme.txt

4.提交檔案(-m 後表示說明內容,需要加引號)

git commit -m "create a readme file"

5.檢視當前修改狀態(常在執行 add 後,執行 commit 之前使用,也可以在 commit之後使用)

git status

6.檢視修改後和上一次提交的檔案的不同(different)

git diff

7.提交修改後的檔案,更新檔案(和最開始新增檔案一樣)

git add readme.txt

8.檢視日誌

git log

9.只檢視版本號和說明內容(大型專案常用)

git log --pretty=oneline

Git 常用版本回退命令

1.Git 中關於版本的標識

在 Git 中用 HEAD 標識表示當前版本
上一個版本用: HEAD^
上上一個版本用:HEAD^^
當然往上100個版本寫100個^比較容易數不過來,所以寫成HEAD~100

2.回到上一個版本
MAC 版:

git reset --hard HEAD^

Windows 版:

git reset --hard "HEAD^"

3.回到上 n 個版本(最後的數字為 n 的值,以2為例):

git reset --hard HEAD~2

4.回到指定版本號版本【版本號(commit_id)不必輸入完整,前幾位能唯一辨認出來就可以】

使用 git log --pretty=oneline 檢視版本號 + 說明內容

git reset --hard commit_id

穿梭前,用 git log 可以檢視提交歷史,以便確定要回退到哪個版本。
要重返未來,用 git reflog 看命令歷史,以便確定要回到未來的哪個版本。

5.撤銷工作區的全部修改(檔名不加引號,有空格)
【當提交後,發現有錯誤,想要撤銷】

git checkout -- readme.txt

兩種情況:
一種是 readme.txt 自修改後還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態;
一種是 readme.txt 已經新增到暫存區後,又作了修改,現在,撤銷修改就回到新增到暫存區後的狀態。
總之,就是讓這個檔案回到最近一次 git commit 或 git add 時的狀態。

6.執行了 add,還沒執行 commit,想要撤回,使用:
【可以把暫存區的修改撤銷掉(unstage),重新放回工作區(而不是刪除修改,刪除修改,需要執行上面的 git checkout – readme.txt,再將工作區中修改的內容刪除)】

git reset HEAD readme.txt

刪除與誤刪解決命令

1.Linux 系統刪除檔案(以刪除 test.txt 檔案為例)

windows 中,直接在資料夾中刪除

rm test.txt

刪除後使用 git status 可以檢測到刪除了檔案,此時兩種情況:
2.如果確實要刪除,想刪除版本庫中內容,執行兩條命令:

git rm test.txt
git commit -m "remove test.txt"

3.如果是誤刪(沒有執行 git rm),想要恢復,執行:

git checkout -- test.txt

4.如果是誤刪(且已經執行 git rm),想要恢復,執行兩條命令:

git reset HEAD test.txt
git checkout -- test.txt

遠端倉庫

1.請自行註冊一個 GitHub 賬號:GitHub 官網

由於你的本地 Git 倉庫和 GitHub 倉庫之間的傳輸是通過 SSH 加密的,所以,需要一點設定:

2.建立 SSH Key。在使用者主目錄下【C盤---->使用者/user---->Administrator(自己的使用者名稱)】,看看有沒有 .ssh 目錄,如果有,再看看這個目錄下有沒有 id_rsa 和 id_rsa.pub 這兩個檔案,如果已經有了,可直接跳到下一步。如果沒有,開啟 Shell(Windows下開啟Git Bash),建立 SSH Key:

ssh-keygen -t rsa -C "[email protected]"

一直回車就可以,也不必要設定密碼
如果一切順利的話,可以在使用者主目錄裡找到 .ssh 目錄,
裡面有 id_rsa 和 id_rsa.pub 兩個檔案,這兩個就是 SSH Key 的祕鑰對,
id_rsa 是私鑰,不能洩露出去,id_rsa.pub 是公鑰,可以放心地告訴任何人。

3.登陸 GitHub,開啟 “Settings”,“SSH Keys” 頁面,“New SSH key”,“貼上公鑰”:

為什麼 GitHub 需要SSH Key呢?因為GitHub需要識別出你推送的提交確實是你推送的,而不是別人冒充的,而Git支援SSH協議,所以,GitHub只要知道了你的公鑰,就可以確認只有你自己才能推送。
當然,GitHub允許你新增多個Key。假定你有若干電腦,你一會兒在公司提交,一會兒在家裡提交,只要把每臺電腦的Key都新增到GitHub,就可以在每臺電腦上往GitHub推送了。
【友情提示】:在GitHub上免費託管的Git倉庫,任何人都可以看到喔(但只有你自己才能改)

你已經在本地建立了一個 Git 倉庫後,又想在 GitHub 建立一個Git倉庫,並且讓這兩個倉庫進行遠端同步,這樣,GitHub 上的倉庫既可以作為備份,又可以讓其他人通過該倉庫來協作,真是一舉多得。

4.登陸 GitHub,然後,在右上角找到 “Create a new reposity” 按鈕,建立一個新的倉庫:
在這裡插入圖片描述

目前,在GitHub上的這個 learngit 倉庫還是空的,GitHub 告訴我們,可以從這個倉庫克隆出新的倉庫,也可以把一個已有的本地倉庫與之關聯,下面介紹把本地倉庫的內容推送到 GitHub 倉庫:

5.檢視你的 GitHub 倉庫連結:
在這裡插入圖片描述
6.在 cmd 或終端執行下面命令(換成自己的地址):

git remote add origin [email protected]:xpwi/learngit.git

在這裡插入圖片描述
7.把本地庫的所有內容推送到遠端庫上:

git push origin master

在這裡插入圖片描述

SSH 警告,輸入 yes 即可

檢視:
在這裡插入圖片描述

更多文章連結