linux入門基礎,Git基礎操作及常見命令——詳解

 2023-10-06 阅读 29 评论 0

摘要:這是我看了一些大牛們講解之后做了一下總結,其中講解較為詳細的是廖雪峰的Git講解 目錄 Git的簡介 Git的安裝 創建倉庫 編輯文件 修改文件 查看修改記錄 撤銷修改 刪除文件 連接GitHub 分支操作 創建標簽 Git的簡介 Git是什么,Git是一個分布式版本控制系統ÿ

這是我看了一些大牛們講解之后做了一下總結,其中講解較為詳細的是廖雪峰的Git講解

目錄

Git的簡介

Git的安裝

創建倉庫

編輯文件

修改文件

查看修改記錄

撤銷修改

刪除文件

連接GitHub

分支操作

創建標簽


Git的簡介

Git是什么,Git是一個分布式版本控制系統,Git的創始人同Linux的創始人也是Linus,之所以創Git就是為Linux的開源做一個平臺,可以讓全球的人共同打造Linux系統,Linus只用了10天左右的時間就把Git給搭建出來了,真是太牛了。在這之后又有了GitHub,這是一個Git的托管平臺,為Git量身定做的,在2008年正式上線,在2018年Github被微軟以75億美元收購,看到GitHub這么貴,可想而知Git的地位

Git的安裝

首先去官網下載一個Git,一路next即可,唯一需要注意的就是下圖需要創建一個桌面快捷方式,如果只想要一個命令行版的,不要界面版的,可以把這個Git GUI Here取消勾選

安裝完之后運行Git,并且進行用戶名和郵箱的設置

git config --global user.name "用戶名"

git config --global user.email "你的郵箱"

創建完這些之后,可以進行Git命令的學習了

創建倉庫

mkdir mygit 這是創建一個名為mygit的目錄

cd mygit 這是移動到該目錄下

pwd 這是顯示你當前位置的路徑

git init 這是把該目錄變成Git可以管理的倉庫

ls -a 這是顯示當前目錄下的所有子目錄(包含隱藏的目錄,其中.git目錄就是隱藏的,也是剛剛創建倉庫的時候創建的)

在Git中分為工作區和版本庫,工作區就是我們自己創建的文件進行編輯的區域,而版本庫就是.git目錄,里面分為暫存區和一個默認分支master

編輯文件

vi readme.txt 起一個名字為readme的txt文件,在vi中進行編輯

git add readme.txt 這是將readme.txt文件加到暫存區

git commit -m "wrote a readme" 這是將暫存區的文件提交到當前分支,默認有一個master分支,同時注釋上add readme.txt

修改文件

git status 該命令可以時刻查看倉庫的狀態

git diff 該命令可以查看當前狀態與修改前有什么不同

git add readme.txt 如果你想對該文件進行修改,那么就需要將修改后的信息提交到暫存區

git commit -m "update readme" 同樣如果修改,也需要將修改的東西提交到當前分支,并注釋

查看修改記錄

git log 該命令會顯示歷史修改的詳細信息

git log --pretty=oneline 該命令顯示較為明了的歷史修改信息

git log --graph --pretty=oneline --abbrev-commit 查看分支合并情況

git? reset --hard HEAD^? 該命令會回到上一次修改前的版本

git? reset --hard HEAD^ ^ 該命令會回到上兩次修改前的版本,以此類推

git? reset --hard HEAD~100 該命令會回到上一百次修改前的版本

git reset --hard HEAD 458sa 該命令會返回版本號以458sa開頭的版本

git reflog 該命令是用來查看你的歷史命令

cat readme.txt 顯示該文件的內容

撤銷修改

git checkout -- readme.txt 在工作區修改失敗進行撤銷

git reset HEAD readme.txt 如果添加到了暫存區發現不對了,這是回到修改區

如果是提交到了版本庫想要撤銷,可以通過歷史記錄進行回退

刪除文件

rm readme.txt 這是刪除工作區的文件

git checkout readme.txt 這是恢復工作區的文件,前提是版本庫中未刪除

git rm readme.txt 這是刪除版本庫的文件,此過程就不可恢復了

連接GitHub

首先看看用戶主目錄下有沒有.ssh目錄,如果有,再看看該目錄下有沒有id_rsa和id_rsa.pub文件,如果也有那萬事大吉,如果沒有則需要在Git Bash下創建SSH key

ssh-keygen -t rsa -C "你的郵箱" 這就是創建一個SSH key(一路回車即可)

然后你就可以登錄GitHub了,在那里創建一個倉庫,然后把.ssh里的id_rsa.pub里的密鑰粘過來

下面會用到你的GitHub名,在GitHub中有兩個名字,一直用到的是下圖的名字

當你添加好SSH key之后,就可以創建一個GitHub倉庫了,創建完GitHub倉庫后就可以用Git跟GitHub進行遠程關聯了

git remote add origin git@github.com:uphe/倉庫名.git 這就可以讓你的Git進行遠程關聯了,遠程庫的名字是origin(默認),如果你在創建倉庫的時候勾選了README.md文件,在執行此命令之前需執行git pull origin master

git push -u origin master 這是把master(默認主分支)分支的所有內容推送到遠程庫中,-u是與遠程master進行關聯

git push origin master 這個是以后往GitHub上圖送內容的命令,只需第一次加上-u進行關聯,后續就不再需要

git clone git@github.com:你的GitHub名/倉庫名.git 這樣可以把你GitHub上的倉庫克隆到本地了

git remote remove origin 這是與遠程斷開連接?

分支操作

上面已經提到了Git的默認主分支master分支,其實在這里還有一個HEAD指針,該指針指向當前分支,當然了默認也是master分支,至于我們是如何提交的,因為提交的是分支那就是默認master了,master是指向最新提交的。如果新創建一個dev分支,把HEAD指向dev分支,并且在dev分支上進行了提交,那么master是不動的,但是dev分支上的工作已經完成了,那就需要分支的合并了,此時合并的方式是master分支直接指向dev分支即可,此時HEAD指針又會指向master分支了,當然了此時的dev分支也就沒啥用了,刪了都沒事

git? checkout -b dev 這句話意思是創建dev分支,并且把HEAD指針指向dev分支(等價于下面這兩句話)

git branch dev 創建dev分支

git checkout dev 把HEAD指針指向dev分支

git branch 查看所有分支,*表示當前所在分支

git add readme.txt 如果你在dev分支上對readme文件進行了修改,這句話是把修改添加到暫存區

git commit -m "add branch" 這是把暫存區的內容提交到dev分支

git checkout master 當你在其他分支的工作完成了,這是回到主分支,也就是HEAD指針指向master分支

git merge dev 這是將剛剛的dev分支的修改進行與master進行合并,如果可能Git會用Fast forward模式

git merge dev --no-ff -m "merge no-ff" 在Fast forward模式下,刪除分支后會丟掉分支信息,用no-ff來禁用Fast forward模式

git branch -d dev 合并完之后,就可以放心的刪除dev分支了

git branch -D feature 假設你現在在添加一個新功能,并在feature上進行,但即將合并時想要刪除該功能,用-D強制刪除

git log --graph --pretty=oneline --abbrev-commit 這是查看當前分支的合并信息

git stash 如果你在dev分支上進行修改,但是需要去master分支修復一個bug,此時git stash就可以幫你存儲當前工作現場

git checkout dev 當你完成bug修復后,直接回到該分支又能繼續工作了,但是當你回來之后你發現工作區是干凈的

git stash list 該命令可以查看你儲存的工作現場,因為之前你保存過工作現場,故工作現場還在

git stash apply 該命令可以恢復現場,但是之前保留的stash內容并不刪除

git stash drop 該命令就是用來刪除stash的內容,也就是恢復一下現場需要兩步,有點麻煩了

git stash pop 該命令是恢復現場的同時把之前保留的stash也刪除,刪除之后再用git stash list查看就沒有任何stash內容了

git remote 可以進行查看遠程庫的信息,遠程庫的名稱默認是origin

git remote -v 是查看遠程庫的詳細信息

git push origin master 這是把該分支的所有本地信息推送到遠程庫,如果推送其他分支只需把master改了就行,對于我們工作者來說,一般推送的信息都是master分支即主分支和dev分支即開發分支

git clone git@github.com:你的GitHub名/倉庫名.git 該方法進行克隆時,只是把master分支克隆到了本地而沒有dev分支

git checkout -b dev origin/dev 這是創建遠程origin的dev分支到本地

git push origin dev 把在dev分支上的修改推送到遠程

git pull 如果在你推送之前有其他人已經推送了,git pull把最新提交從origin/dev中抓下來,然后在本地進行合并后再推送

git branch --set-upstream-to=origin/dev dev 這是分支鏈接,如果git pull失敗,說明本地dev沒有與遠程origin/dev分支鏈接

git rebase 該操作是把本地未push的分叉提交歷史整理成直線,說白了就是看著更加清晰好看

創建標簽

創建標簽很簡單,想在那個分支創建標簽,就切換到哪個標簽即可

git checkout master 我們先切換到master分支

git tag v1.0 這樣我們就在master上創建了一個標簽,這是默認標簽,即是在最新提交的commit上

git tag 查看所有標簽

git log --pretty=oneline --abbrev-commit 這是顯示歷史提交記錄

git tag v0.9 458sd 假設歷史記錄中有一個commit id為458sd。該命令可以給歷史提交添加標簽

git show v0.9 可以查看該標簽的信息,是不是比用那個commit id要方便些

git -a v0.8 -m "this is v0.8" 568hg 這個是帶參數的添加標簽 -a是標簽名,-m是標簽描述

git tag -d v0.8 這是刪除標簽,因為創建的標簽只是在本地,不會自動推送到遠程,所以可以刪除

git push origin v1.0 這是把該標簽推送到遠程

git push origin --tags 這是一次性推送所有的標簽(推送過想要刪除遠程標簽就有點麻煩了,需要兩步)

git tag -d v0.9 首先這是在本地刪除標簽

git push origin :refs/tags/v0.9 這是從遠程刪除,想要看看是否刪除了,可以從遠程看看

到此,Git的基礎操作也就講完了,有什么不懂或者執行不對的地方還請多多提出,希望您能有所收獲

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/122922.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息