Git的基本使用

參考資料:
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

git-分布式版本控制系統(tǒng)

集中式 vs 分布式:

  • 集中式
    版本庫(kù)集中存放在中央服務(wù)器上;
  • 分布式
    每一個(gè)人電腦都是完整的版本庫(kù);
    優(yōu)勢(shì):1、不必聯(lián)網(wǎng); 2、豐富的分支管理功能
  • tips
    pwd 顯示當(dāng)前所在路徑
    ls -ah 顯示當(dāng)前目錄下所有文件(包括隱藏文件)
  • utf-8
    windows自帶的記事本編輯utf-8時(shí),會(huì)自動(dòng)在頭部添加十六進(jìn)制字符;
    建議用notepad++代替,并選擇utf-8 without bom格式;
  • git只能跟蹤純文本文件的改動(dòng);
    圖片、視頻、microsoft的word是二進(jìn)制文件,只能覆蓋修改,不跟蹤每次改動(dòng)情況;

本地使用

  • 安裝
    git config --global user.name "Your Name"
    git config --global user.email "email@example.com"

  • 版本庫(kù)
    working directory
    repository: stage , master(HEAD指針)

文件狀態(tài):
untracked 本地新增
Changes not staged for commit 本地修改
staged add之后

  • 日志查看:
    git log 查看歷史版本記錄
    (git log --pretty=oneline)
    (git log -- src/a.vue)
    git log --graph查看分支合并圖 (git graph 最左側(cè)的一列為當(dāng)前分支)
    git show commit_id -- src/a.vue 查看指定版本及文件的修改
    git reflog 查看未來(lái)版本記錄
    git reset --hard commit_id git reset -- hard ^HEAD 恢復(fù)到指定版本
    git status查看文件狀態(tài)
    git diff查看修改內(nèi)容(對(duì)比工作區(qū)與版本庫(kù)里的分支)
    q退出查看
  • 新增或恢復(fù)文件
    use git add <file>...to include in what will be committed
    use git rm --cached <file>.. to unstage 新增文件后,由暫存區(qū)恢復(fù)到本地
    use git reset HEAD <file>... to unstage 新增或修改文件后,由暫存區(qū)恢復(fù)到本地
    use git checkout -- <file>... to discard changes in working directory
    (用版本庫(kù)替換本地文件,恢復(fù)到最近一次add或commit)
  • 刪除文件
    rm kkk
    誤刪:git checkout -- kkk
    刪除版本庫(kù):git rm kkk,git commit

遠(yuǎn)程庫(kù)

  • 關(guān)聯(lián)遠(yuǎn)程倉(cāng)庫(kù):
    在本地項(xiàng)目根目錄下執(zhí)行
    git remote add origin git@github.com:myfenni/learngit.git
    git remote rm origin
  • 推送master分支內(nèi)容到遠(yuǎn)程倉(cāng)庫(kù)
    git push -u origin master 第一次
    git push origin master
  • 提交本地test分支作為遠(yuǎn)程的master分支
    git push origin test:master
  • 提交本地test分支作為遠(yuǎn)程的test分支
    git push origin test:test
  • 刪除遠(yuǎn)程的分支
    剛提交到遠(yuǎn)程的test將被刪除,但是本地還會(huì)保存的
    git push origin :test
  • 克隆
    git clone

分支管理

  • 創(chuàng)建并切換分支
    git checkout -b dev
    等同于
    git branch dev; git checkout dev
  • 查看本地分支
    git branch
  • 查看遠(yuǎn)程分支
    git remote -v
  • 合并某分支到當(dāng)前分支
    git merge dev
    use git merge --abort to abort the merge 停止合并
  • 刪除分支
    git branch -d dev

分支切換時(shí)對(duì)本地文件的影響

  • 本地僅有develop分支,且修改了abc文件未提交時(shí),新建本地master分支并切換到master,adb文件仍存在并處于未提交狀態(tài)
git branch
//develop
git status
//文件a.b,c待add或commit
git checkout -b master
git status
//文件a.b,c待add或commit
git checkout develop
//文件a.b,c待add或commit
git add .
git commit -m 'add'
git status
//devlop分支處于clean狀態(tài),已有adc的修改
git checkout master
//master分支處于clean狀態(tài),仍無(wú)abc的修改

  • 本地位于develop分支,同時(shí)有master分支,且修改了abc文件未提交時(shí),切換到master會(huì)失敗并提示:”先提交本地修改再切換分支“
git branch
//develop(位于),master
git status
//文件adc待add,或commit
git checkout master
//提示,先commit本地修改,才能切換分支
git add .
git commit -m 'add'
git status
//devlop分支處于clean狀態(tài),已有adc的修改
git checkout master
git status
//master分支處于clean狀態(tài),仍無(wú)abc的修改
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,836評(píng)論 4 54
  • 一、前言: 關(guān)于git的學(xué)習(xí)最早是來(lái)源于廖雪峰帥哥的官網(wǎng),通俗易懂,場(chǎng)景眾多。不過(guò)最近在掘金上看了一個(gè)帥哥的文章,...
    前端小學(xué)生_f675閱讀 351評(píng)論 0 0
  • 一. 掌握 - git 概述 1. git 簡(jiǎn)介? 什么是git? > git是一款開(kāi)源的分布式版本控制工具 > ...
    Louis_hey閱讀 551評(píng)論 1 3
  • Git 基礎(chǔ) 基本原理 客戶(hù)端并不是只提取最新版本的文件快照,而是把代碼倉(cāng)庫(kù)完整的鏡像下來(lái)。這樣一來(lái),任何一處協(xié)同...
    __silhouette閱讀 16,203評(píng)論 5 147
  • Git的使用心得 由于公司對(duì)我的代碼管理不嚴(yán)謹(jǐn),所以荒廢了好久的Git,一直就沒(méi)怎么用,后面也多忘光了,所以再次重...
    IUVO閱讀 342評(píng)論 0 1

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