git linux 登陸 Linux中git的使用

2021-10-16 18:50:07 字數 2365 閱讀 2169

之前在windows中一直採用github的桌面版,庫的建立更新都是借助軟體的幫助。所使用的的功能也非常侷限,僅僅只是建立庫再提交自己的**。至於版本管理、回滾、分支以及git的結構都沒有清楚的認識。這次由於任務需要,在ubuntu中必須使用git來鏈結github,所以必須接觸一些git的命令,也對git的思想有了進一步的認識。這裡簡單梳理以下,作為備忘錄。文末也附上我參考的部落格,有興趣的可以進一步閱讀。

一些認識

之前對github和git一直傻傻分不清,以為是兩種不同的版本管理工具。現在才認識到git是一種版本管理工具,而github只是乙個遠端倉庫。實際上沒有github這種遠端倉庫,你計算機中git也會建立乙個本地的倉庫,或者鏈結到其他的遠端倉庫。

1. git的安裝

輸入命令安裝git,並檢視版本以確認安裝成功。

sudo apt-get install git

git --version

2. git的使用

先解釋一些概念,git分四層管理**。

你目錄中的檔案是第一層

快取區,每次add之後,當前目錄中要追蹤的檔案會作為乙個版本會存放在快取區。注意不是所有的檔案。一般乙個檔案生成之後,會標記為「未追蹤」,但是否對其做版本管理還是要選擇的。例如一些編譯檔案就沒有必要追蹤。對需要做版本管理的問件,用add新增,不需要的用clean刪除。

本地倉庫,每次commit之後,快取區最新的版本就會存放在本地倉庫。這裡要提及乙個head的概念。head是當前的版本指向,每次更新或者回退都會修改head的指向,但對倉庫中每乙個版本並不會刪除。所以即使回退到過去還是有機會回到現在的版本的。

遠端倉庫,每次push之後,會將本地倉庫中head所指向的版本存放到遠端倉庫

命令功能

git init

在本地的當前目錄裡初始化git倉庫

git status

檢視當前倉庫的狀態

git add -a

增加目錄中所有的檔案到快取區

git add file

增加相應檔案到快取區

git commit -m "資訊"

將快取區中更改提交到本地倉庫

git log

檢視當前版本之前的提交記錄

git reflog

檢視head的變更記錄,包括回退

git branch -b branch_name

建立乙個新的分支

git diff

檢視當前檔案與快取區檔案的差異

git checkout -- file

取消更改,將快取區的檔案提取覆蓋當前檔案

git reset --hard 版本號

回退到相應版本號,同樣也可以回退到未來的版本號

git clean -xf

刪除當前目錄中所有未追蹤的檔案

git config --global core.quotepath false

處理中文檔名

這些命令用於處理本地倉庫的版本管理足夠了,下面我介紹與遠端倉庫打交道。

2. git與github的鏈結

首先我們認為你已經有乙個github的賬戶。

然後我們要建立ssh鏈結。這是一種通訊的加密協議。我先在我的筆記本上計算一對公鑰和私鑰,將公鑰儲存在github中,這樣本地就可以通過ssh與github展開加密通訊。詳細的內容可以參考ssh原理與運用(一):遠端登入。

建立方法,輸入命令

ssh-keygen -t rsa -c "[email protected]" //雙引號裡面是你的常用郵箱

輸入之後要輸入口令,可以不用輸入直接按「enter」一路確認就可以了。然後在賬戶的根目錄(/或者/home/你的賬戶名,具體取決於你執行上述命令時所採用的賬戶)查詢隱藏目錄.ssh/id_rsa.pub檔案,將當中內容新增到github中。

這樣你就可以通過ssh鏈結到github中了。但是github作為乙個遠端倉庫,你可以鏈結這個倉庫,並保持同步。但是你不能把本地倉庫直接上傳到github中去。所以你應該先在github中建立乙個對應的倉庫,然後再在本地建立乙個倉庫,將兩者進行鏈結,再去寫入檔案執行版本管理。所用到的命令有

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

git pull origin master //因為github建立倉庫時會有readme.md檔案,先要拷貝乙份

git push -u origin master //將本地倉庫鏈結到master分支上,你當然可以鏈結到其他分支

git push//上傳你的本地倉庫

還有一種方法不用分兩地建庫再去鏈結。你可以只在github上建庫,然後clone到本地目錄中。

git clone [email protected]:/.git

至於團隊合作中的分支管理,由於現在還用不到,等以後有機會試用在去學習吧。

登陸mysql s MySQL登陸退出

單例項登陸mysql mysql mysql uroot 適合剛安裝後無密碼 mysql uroot p 標準登陸的方法 mysql uroot p password 密碼明文會洩露密碼,一般用於指令碼中,指令碼許可權root 700 多例項登陸mysql mysql s data 3307 mys...

Linux免密登陸

a為本地主機 即用於控制其他主機的機器 b為遠端主機 即被控制的機器server 假如ip為172.24.253.2 a和b的系統都是linux 在a上的命令 ssh keygen t rsa 連續三次回車,即在本地生成了公鑰和私鑰,不設定密碼 ssh root 172 24.253 2 mkdir...

linux免密登陸

首先,需要了解ssh登陸方式原理 1.登陸端需要傳送給被登陸端 ssh請求 2.然後被登陸端傳送給登陸端乙個公鑰 3.登陸端用公鑰加密使用者名稱和密碼,將密文傳送給被登陸端 4,然後被登陸端會用自己的私鑰進行解密,解密成功就可以登陸成功 ssh免密登陸原理 登陸端需要生成一對秘鑰,公鑰和私鑰 公鑰傳...