Git分爲3個區,工做區,暫存區,本地庫💿 資源git
其餘資料(簡潔):https://www.yiibai.com/gitshell
其餘資料(較複雜):https://www.liaoxuefeng.com/w...緩存
Git快速入門:https://www.bilibili.com/vide...bash
Git進階:https://www.bilibili.com/vide...yii
- 官網下載:https://git-scm.com/
- 安裝:next()
- 配置基本信息
git config --global user.name "Your Name" git config --global user.email "email@example.com" # example git config --global user.name "SunSeekerX" git config --global user.email "1647800606@qq.com"
指令 | 說明 |
---|---|
初始化 | |
git init | 把本地的目錄變成git本地倉庫(執行一次便可) |
git remote add [遠程地址別名] [遠程倉庫地址] | 將你本地倉庫與遠程倉庫關聯起來(通常關聯一個地址便可) |
經常使用操做 | |
git status | 查看本地倉庫文件狀態 |
git add -A | 添加整個工做區全部發生改變的文件到暫存區 |
git commit -m 'Commit message' | 將暫存區文件放到本地倉庫,-m 後面接註釋寫上本次更改的地方 |
git pull [遠程地址別名] [遠程倉庫分支] | 合併遠程倉庫的更新(push以前必須先合併) |
git push -u [遠程地址別名] [遠程倉庫分支] | 將本地當前分支的commit推送到遠程指定分支,(-u 指定該遠程地址爲默認,後面就能夠不加任何參數使用git push了) |
建立ssh key |
|
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" | 建立一個ssh key ,直接回車,文件存在,不用的直接刪除目錄,有用的就直接複製ssh key |
clip < ~/.ssh/id_rsa.pub | 把密鑰放在剪貼板 |
基本操做命令
git init # Initialized empty Git repository in C:/Users/SunSeekerX/Desktop/git/.git/
git status # 查看工做區,暫存區的狀態
git add [file name] git add . # 添加全部發生改變的文件 (操做的對象是當前目錄下的全部變動,. 表示當前目錄。) git add -A # 添加全部發生改變的文件(操做的對象是整個工做區的全部變動,不管當前位於那個目錄下。) git add -u # 添加全部發生改變的文件(操做的對象是正個工做區已經跟蹤的變動,不管當前位於那個目錄下。)
git rm --cached [file name]
git commit -m 'commit message'
git log # 打印詳細的日誌信息 # (HEAD -> master) HEAD爲指針指向當前版本 # 1.多屏控制 # 1.1:格向下翻頁 # 1.2:向上翻頁 # 1.3:退出 git log --pretty=oneline # 以一行顯示commit信息,提交的hash值徹底顯示,(沒法顯示回退版本以前的commit版本信息) git log --oneline # 以一行顯示commit信息,提交的hash值只顯示一部分,(沒法顯示回退版本以前的commit版本信息) git reflog # 以一行顯示commit信息,而且顯示出HEAD指針須要移動的步數,(能夠顯示回退版本以前的commit版本信息) # 前面7個字符顯示hash # HEAD@{1}: 大括號內顯示須要移動的步數
# 本質:移動HEAD指針到某個指定的commit版本上 ### 基於索引值[推薦] git reset --hard [hash] ### 使用^符號:只能後退 git reset --hard HEAD^ # 一個^回退一步,n個後退n步 ### 使用~符號:只能後退 git reset --hard HEAD~n # 表示回退n步 ####### reset 參數解釋 --soft # 1僅在本地庫移動HEAD指針 --mixed # 1.會在本地庫移動HEAD指針 # 2.重置緩存區 --hard # 1.會在本地庫移動HEAD指針 # 2.重置緩存區 # 3.重置工做區
git diff # 比較全部文件,工做區的文件和暫存區進行比較 git diff [文件名] # 將工做區的文件和暫存區進行比較 git diff [本地庫中的歷史版本] [文件名] # 將工做區的文件和本地庫中的歷史記錄版本進行比較
簡介:在版本控制過程當中,使用多條線同時推動多個任務。ssh
好處:各個分支在開發的過程當中,若是某一個分支開發失敗,不會對其餘分支形成任何影響,刪除從新開始便可。ide
初始化git倉庫默認建立一個
master
分支fetch其餘分支習慣以
feature_[name]
命名url主分支有bug去修復,習慣開分支爲
hot_fix
進行修復,修復完pull-request
到master
分支命令行由於主分支通常24小時不間斷運行
graph LR start(project) -- branch --- hot_Fix((hot_Fix)) start --branch--> master((master)) start --branch--> feature_theme((feature_theme)) start --branch--> feature_game((feature_game)) master --new_branch--> hot_Fix hot_Fix --fix_bug--> hot_Fix_commit_A hot_Fix_commit_A --merge--> master_commit_A master --commit--> master_commit_A feature_theme --success_commit--> theme_commit_A theme_commit_A --merge--> master_commit_A feature_theme --fail--> delete_branch feature_game --success_commit--> game_commit_A game_commit_A --merge--> master_commit_A feature_game --fail--> delete_branch
git branch -v
git branch [分支名]
git checkout [分支名]
# 1.切換到接受修改的分支上(被合併,增長新內容) git checkout [分支名] # 2.合併分支 git merge [有新內容的分支]
# 找到衝突的文件解決衝突 # 添加解決修改的文件 # commit
若是是本地初始的倉庫須要添加遠程倉庫地址,克隆倉庫不須要。可使用http或者ssh方式
http須要帳戶名和密碼,ssh須要配置ssh-key
git remote -v
git remote add origin [遠程地址]
git pull [遠程地址別名(origin)] [遠程倉庫分支] # 至關於 fetch + merge # 若是出現 fatal: refusing to merge unrelated histories # 其實這個問題是由於 兩個 根本不相干的 git 庫, 一個是本地庫, 一個是遠端庫, 而後本地要去推送到遠端, 遠# 端以爲這個本地庫跟本身不相干, 因此告知沒法合併 # 具體的方法, 一個種方法: 是 從遠端庫拉下來代碼 , 本地要加入的代碼放到遠端庫下載到本地的庫, 而後提交上# 去 , 由於這樣的話, 你基於的庫就是遠端的庫, 這是一次update了 # 第二種方法: # 使用這個強制的方法 git pull origin master --allow-unrelated-histories # 把兩段不相干的 分支進行強行合併
git push [遠程地址別名(origin)] [遠程倉庫分支]
git fetch [遠程地址別名(origin)] [遠程倉庫分支]
git checkout [遠程地址別名(origin)]/[遠程倉庫分支]
git merge [遠程地址別名(origin)]/[遠程倉庫分支]
其餘操做同
基本操做-本地初始倉庫
git clone [遠程倉庫地址]
git config --local -l
git config --local -e # 等同於 git config -e #[remote "origin"] # url = https://gitee.com/SunSeekerX/test.git # fetch = +refs/heads/*:refs/remotes/origin/* # 此處配置了遠程地址`origin`的地址和抓取信息 # [branch "master"] # remote = origin # merge = refs/heads/master # 此處配置了默認pull和push的遠程地址和合並分支名
git checkout -- .
在win10上使用http方式,win10會記錄用戶名和密碼,須要切換帳戶須要到
控制面板\全部控制面板項\憑據管理器
中找到本身的帳戶名和密碼進行刪除,而後就能從新輸入用戶名和密碼
百度
Git 配置ssh key
略