後端開發技能學習 一 Git命令彙總

2021-10-24 02:32:53 字數 3394 閱讀 8658

遠端倉庫

分支管理

標籤管理

自定義git

$ mkdir learngit  # 建立倉庫目錄

$ cd learngit

$ pwd # 顯示當前目錄

/users/michael/learngit

$ git init # 倉庫初始化

initialized empty git repository in /users/michael/learngit/.git/

$ git add readme.txt # 新增檔案到倉庫

$ git commit -m "wrote a readme file" # 提交

[master (root-commit) eaadf4e] wrote a readme file

1 file changed, 2 insertions(+)

create mode 100644 readme.txt

版本回退
# 版本回退

$ git status # 檢視倉庫狀態

$ git diff readme.txt # 檢視檔案的修改

$ git log --pretty=oneline # 檢視所有歷史版本 (--pretty=oneline顯示簡略資訊)

$ git reset --hard head^ # 回退到上乙個版本 (head~n 回退到上n個版本)

head is now at e475afc add distributed

$ git reset --hard 1094a # 回退到指定版本號的版本

$ git reflog # 記錄每一次命令

工作區與版本庫

版本庫:目錄下的.git檔案(stage:暫存區,master:第乙個分支,head:指向當前分支)

用git add把檔案新增進去,實際上就是把檔案修改新增到暫存區;

用git commit提交更改,實際上就是把暫存區的所有內容提交到當前分支。

因為我們建立git版本庫時,git自動為我們建立了唯一乙個master分支,所以,現在,git commit就是往master分支上提交更改。

修改與刪除

git管理的是修改,而不是檔案

$ git checkout -- readme.txt # 撤銷工作區的修改
命令git checkout – readme.txt意思就是,把readme.txt檔案在工作區的修改全部撤銷,這裡有兩種情況:

一種是readme.txt自修改後還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態;

一種是readme.txt已經新增到暫存區後,又作了修改,現在,撤銷修改就回到新增到暫存區後的狀態。

總之,就是讓這個檔案回到最近一次git commit或git add時的狀態。

$ git reset head # 把暫存區的修改撤銷掉(unstage),重新放回工作區
刪除檔案:先刪除工作區,然後git add或 git rm刪除版本庫檔案

設定倉庫

1.建立ssh key。在使用者主目錄下,看看有沒有.ssh目錄,如果有,再看看這個目錄下有沒有id_rsa和id_rsa.pub這兩個檔案,如果已經有了,可直接跳到下一步。如果沒有,開啟shell(windows下開啟git bash),建立ssh key:

$ ssh-keygen -t rsa -c "[email protected]"
id_rsa是私鑰,不能洩露出去,id_rsa.pub是公鑰,可以放心地告訴任何人。

2.登陸github,開啟「account settings」,「ssh keys」頁面:

然後,點「add ssh key」,填上任意title,在key文字框裡貼上id_rsa.pub檔案的內容:

新增遠端庫

echo "# blog" >> readme.md  # 建立倉庫檔案

$ git init # 初始化倉庫

$ git add readme.md

$ git commit -m "first commit" # (前面做了可省略)

$ git branch -m master # 更改分支名字

$ git remote add origin [email protected]:lzrrr33/blog.git # 關聯github倉庫

$ git push -u origin master # 推送當前分支到遠端(第一次需要加-u引數,把兩個倉庫關聯起來)

$ git clone [email protected]:michaelliao/gitskills.git # 轉殖倉庫到本地

可以看到:

建立與合併分支

$ git checkout -b dev($ git switch -c dev) # 建立並切換分支(與以下兩條命令等價)

$ git branch dev # 建立分支

$ git checkout dev($ git switch master) # 切換分支

$ git branch # 檢視分支(當前分支會有*號)

$ git merge dev # 將dev分支合併到當前分支

$ git branch -d dev # 刪除分支

$ git log --graph # 檢視分支合併圖

$ git rebase # 將分叉的提交變成一條直線

待更新。。。

$ git tag v1.0  # 對當前分支打標籤

$ git tag # 檢視所有標籤

$ git tag v0.9 f52c633 # 根據commit號打標籤

$ git show v0.9 # 檢視標籤資訊

$ git tag -d v0.1 # 刪除標籤

$ git push origin v1.0 # 推送標籤到遠端

$ git push origin --tags # 推送所有標籤到遠端

$ git tag -d v0.9 # 刪除本地標籤

$ git push origin :refs/tags/v0.9 # 刪除遠端標籤(需先刪除本地標籤)

待更新。。。

Git命令學習一

配置使用者姓名,郵箱 全域性配置方法 git config global user.name android git config global user.email 111 qq.com只配置當前倉庫 git config global user.name android git config g...

Git命令學習記錄 一

git init git init命令會把目標目錄變成git所能管理的倉庫。使用時先cd到目標目錄,再執行。執行成功會顯示 initialized empty git repository in 目標目錄 git add myfs.txt git add 命令會把目標檔案提交到git檔案暫存區,即將...

學習git的一些命令

在沒有svn伺服器的時候,我們需要git來管理我們的 svn是集中式版本控制,git是分布式版本控制。git管理的 的所有版本既可以儲存到伺服器也可以儲存到本地。當有需要的時候我們才提交到伺服器 git命令列 1.建立乙個倉庫 2.初始化專案隨便新增幾個檔案 3.提交專案到版本控制 4.git co...