git 基本使用

 一,Github簡介

 

 二,創建SSH (每次提交可以不用輸用戶名密碼)

HTTP方式需要每次用戶名密碼認證

在Github中 新增SSH

打開一個終端並生成一個SSH的Key文件

生成好的文件:

將公鑰添加至Github:

配置多用戶:

 

三,Git的基本應用

1) 使用SSH來獲得代碼:

執行

git clone [email protected]:xxx

在配置好本地SSH以後,該命令會直接從遠程倉庫將代碼下載至本機當前目錄

2)更改本地文件:

創建一個新的文件,比如a.txt

命令,查看當前工作目錄的更改:

git status

能夠顯示出當前工作目錄下的更改點。

3)追加當前的修改:

git add a.txt

將修改的文件追加至當前工作目錄,也可以使用git add *來添加多個文件的修改

4) 提交併註釋

將當前的更改提交(注意提交並不會馬上上傳文件更改到遠程倉庫,但是要提交到遠程倉庫之前必須先本地提交)

git commit -m "add a.txt"

這裏由於沒有將當前工作路徑與用戶信息關聯,所以需要配置用戶

使用以下,命令來配置git的用戶名和密碼
 

git config --global user.email "[email protected]"

git config --global user.name "Your Name"

當然你可以只給當前目錄配置,去掉 --global 選項

git config user.email "[email protected]"

git config user.name "Your Name"

配置完成以後,接着嘗試提交:

5)將更改提交到遠端服務器

git push

查看遠端中已經新增了文件:

如果在另外一臺就機器上進行了其他更改,直接提交會失敗。這時候需要先進行pull操作

6)Pull操作

git pull

因爲筆者寫blog的時候用的同一臺電腦,這裏用了另外一個project做演示

 

四,git進階應用

1)如果git commit -m "XXX"寫錯了,可以在push之前進行修復

git commit --amend -m "xxx"

 

1)merge修改,如果兩臺工作站同時修改了一個文件。假設A提交了修改,而B在修改以後會被要求進行Pull

A終端修改a.txt如下

B終端同時修改a.txt如下

接着,A終端對文件A進行提交 。

同時B終端在不知道A已經提交的情況下進行提交:

會提示push失敗,因爲別的終端已經對遠端進行了修改,而當前終端的版本不是最新。

需要先執行git pull

但是會提示發生了衝突,需要進行手動fix conflict

查看衝突:

vim打開修改以後再保存。執行add, commit 和push可以解決衝突

注意<<<<<<<< 和>>>>>>>>直接是發生衝突的地方,

=========以後是遠端的內容=======以前是當前文檔的內容。

保留想要的內容並刪除<<<<<<<<和>>>>>>>還有====== 就可以解決衝突

 

2)查看git日誌

可以查看當前本地倉庫的各種日誌:

git log

可以看到每次commit的ID和commit的內容

3) reflog

git reflog

查看精簡版的log信息

4)帶提交ID的精簡版日誌信息:

git log --pretty=oneline

5) tag的應用:

# 創建一個叫v1的tag
git tag -a v1 -m "create tag revision v1"

# 查看當前的tag
git tag

# 查看v1 tag的詳細信息
git show v1

tag 不能使用add, commit, push不能將tag上傳。需要執行以下命令

git push origin v1

將tag v1推送到遠端

# 將多個添加的tags依次推送到遠端
git push origin --tags

6)版本回退

# 回退一個版本
git reset --hard HEAD^

# 回退兩個版本
git reset --hard HEAD^^

# 回退三個版本
git reset --hard HEAD^^^

# 回退到特定commit id 版本
git reset --hard 6e28a32c5a13672e3d094b6078d09afb7b4ff967

# 回退前N個版本這裏是100個
git reset --hard HEAD~100

7)分支操作

查看分支:

git branch -a

# 創建名爲branch1的分支
git branch branch1

# 切換到branch1
git checkout branch1

# 在當前分支下提交
git add.
git commit -m "branch test"
git push --set-upstream origin branch1

合併分支

# 切換到master分支上 
git checkout master

# 將branch1合併到master
git merge branch1

# 刪除branch1
git branch -d branch1

# 將branch1的合併,刪除的修改提交到遠端
git push origin :branch1

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章