git 入門

git是一個(gè)開源的分布式版本控制系統(tǒng),用于敏捷高效地處理項(xiàng)目.

安裝

  • 可以從Git官網(wǎng)現(xiàn)在安裝程序, 然后默認(rèn)選項(xiàng)安裝即可.

  • 安裝成功后, 在開始菜單找到Git Bash, 跳出命令窗口說明安裝成功.

  • 進(jìn)行g(shù)it設(shè)置

    • git config --global user.name "yourName"
    • git config --global user.email email@example.com
  • 查看設(shè)置的user信息

    • git config user.name
    • git config user.email
  • 執(zhí)行 ssh-keygen -t rsa -C "郵箱地址" ,一直回車, 生成ssh key

注意:

  1. git config命令用了--global參數(shù), 標(biāo)識這臺機(jī)器上的所有g(shù)it倉庫都使用這個(gè)配置; 當(dāng)然也可以對倉庫指定不同的用戶名和emai地址.

  2. 刪除ssh時(shí), 一直默認(rèn)回車就好, 不用設(shè)置ssh的密碼, 否則每次提交都要輸入ssh的密碼.

  • 找到生成的ssh(默認(rèn)是id_rsa.pub文件), 復(fù)制秘鑰后添加到代碼托管平臺.

使用

拉取遠(yuǎn)程代碼

git clone 倉庫地址 , 完成后cd到倉庫目錄

git branch -a , 可以查看所有分支

git checkout 目標(biāo)分支 , 檢出目標(biāo)分支

如果要新建本地分支拉取, git checkout -b 新分支名 拉取到本地新分支上, 再 git pull origin 分支 將本地分支與遠(yuǎn)程分支關(guān)聯(lián).

查看是否關(guān)聯(lián): git branch -vv , 看到有藍(lán)色[origin/分支] , 說明關(guān)聯(lián)成功, 以后直接 git pull 就可以拉取遠(yuǎn)程更新了.

提交

首先我們先默認(rèn)項(xiàng)目中有兩個(gè)分支:master,develop。我們在develop中做開發(fā),然后提交代碼,步驟如下:

  1. 查看當(dāng)前分支的修改或增加文件(可省略)

git status

git diff 查看變更.

  1. 把修改文件添加到暫存區(qū),-u的意思是追蹤過的代碼,可根據(jù)情況省略,.是全部

git add .git add -u .

  1. 把暫存區(qū)的所有內(nèi)容提交到當(dāng)前分支

提交的同時(shí)輸入日志 git commit -m "日志" .

或者 git commit , 然后使用vim編輯.

git commit 后面的操作步驟

1 按下小寫字母i,會進(jìn)入編輯模式。輸入你想要的 message

2 按下esc退出編輯模式

3 輸入:wq,就可以保存退出了,w是write,q是quit。

4也可以在按esc退出編輯模式以后,切換到大寫模式,連按兩下Z

  1. push到遠(yuǎn)程分支,develop分支提交完成。

git pushgit push origin developgit push -u origin develop

合并

方法一: git merge 合并

將develop分支合并到master,步驟如下:

  1. 查看所有本地分支(可省略)

    git branch

  2. 切換到master分支

    git checkout master

  3. 拉取

    git pull

  4. 合并分支,merge將后面的分支合并到當(dāng)前分支

    git merge develop

  5. 若沒有沖突,跳過此步;若有沖突,解決后add,再commit

    git add . git commit -m "update"

  6. push到遠(yuǎn)程master分支上

    git pushgit push -u origin master

合并完畢。

最后記得切回develop分支 git checkout develop 繼續(xù)開發(fā)。

方法二: git rebaseh 衍合

git checkout dev1
# 新增/修改了代碼
git add .
git commit -m "提交信息"
git checkout develop
git pull
git checkout dev1
git rebase develop
等待, 有沖突解決沖突
git add .
git rebase --continue
等待rebase結(jié)束
git commit -m "提交信息"
git push
然后master合入develop

rebase 基于當(dāng)前分支,拉取目標(biāo)分支的commit,再將當(dāng)前的commit放在目標(biāo)分支的commit之后

重置/撤銷

參考:https://www.cnblogs.com/panbingwen/p/10736938.html

Git 保存的不是文件的變化或者差異,而是一系列不同時(shí)刻的文件快照。

git reset命令是git中重置命令,即用來撤銷某次提交(commit)。

1、修改本地倉庫中commit對象(快照)

img

此時(shí)本地倉庫對應(yīng)的是commit4,git reset 可以讓本地倉庫對應(yīng)的指針變?yōu)閏ommit3或是commit1等之前的版本,當(dāng)然,也可以變?yōu)閏ommit4之后的某個(gè)commit,如commit5。

Git 的分支,其實(shí)本質(zhì)上僅僅是指向提交對象的可變指針。

當(dāng)使用git reset命令時(shí)候,一般會修改本地倉庫。

其常用格式如下:

用法一:git reset [-q] [] [--] ...
用法二:git reset [--soft | --mixed | --hard | --merge | --keep ] [-q] [commit]

參數(shù)說明 (git loggit reflog可查看commitId,commitId是快照的唯一標(biāo)識)

git log --pretty=oneline -2 查看最近2次提交記錄,顯示commitId,一條記錄在一行中顯示

  • --hard commitId 修改本地倉庫、暫存區(qū)、工作區(qū)里面的數(shù)據(jù)為commitId對應(yīng)快照的內(nèi)數(shù)據(jù)
image
  • --mixed commitId 修改本地倉庫、暫存區(qū)里面的數(shù)據(jù)為commitId對應(yīng)快照里的數(shù)據(jù),是git reset默認(rèn)的參數(shù),--mixed可缺省。 暫存區(qū)的數(shù)據(jù)會被快照中的數(shù)據(jù)覆蓋

  • --soft commitId 修改本地倉庫里面的數(shù)據(jù)為commitId對應(yīng)快照的數(shù)據(jù)。(僅改變指向快照的指針指向)

當(dāng)git reset 后面的commitId為當(dāng)前提交的commitId時(shí),即HEAD(可缺省)。那么:

參數(shù)說明:

--hard HEAD 修改暫存區(qū)、工作區(qū)里面的內(nèi)容為當(dāng)前快照里的內(nèi)容。(這個(gè)很危險(xiǎn),曾經(jīng)踩過坑,電腦的文件丟失了很多,也是導(dǎo)致我決心好好學(xué)一學(xué)git的原因,慎用)
--mixed HEAD 修改暫存區(qū)里面的內(nèi)容為當(dāng)前快照里的內(nèi)容,是git reset默認(rèn)的參數(shù),因此可缺省。
--soft HEAD 本地倉庫、暫存區(qū)、工作區(qū)都不改變 |

我們需要注意,使用git reset重置一般是很危險(xiǎn)的,會徹底地丟掉歷史。因?yàn)槿绻麤]有記錄下重置前的commitId,一般不容易找回,除非分析.git/logs里面的日志,故重置需慎重。

刪除分支

刪除本地分支

git branch -D feature-dev1

刪除遠(yuǎn)程分支

切換到別的分支后再刪除目標(biāo)分支:

git push origin --delete feature-dev2

刪除遠(yuǎn)程分支同步到本地

使用 git branch -a 可以查看本地分支和遠(yuǎn)程分支情況

image

但遠(yuǎn)程分支刪除后,發(fā)現(xiàn)本地并沒有同步過來。

git remote show origin 查看本地分支和追蹤情況

image

上圖紅框中的分支是遠(yuǎn)程分支已被刪除的分支,根據(jù)提示可以使用 git remote prune origin 來同步刪除這些分支。

image

再次查看分支:

image

紅色部分的遠(yuǎn)程分支已經(jīng)同步,遠(yuǎn)程刪除的分支,本地也已經(jīng)不見了。

查看提交日志

下面的命令都可用于查看提交記錄:

git log

一次提交記錄以一行顯示:

git log --oneline

git log --oneline -10 顯示10條(短ID顯示)

git log --pretty-oneline -20 顯示20條(全I(xiàn)D顯示)

檢出新分支

檢出遠(yuǎn)程分支dev到本地分支dev3

git checkout -b dev3 origin/dev

從 4afde9 節(jié)點(diǎn)處檢出新的本地分支dev4

git checkout -b dev4 4afde9

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容