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
略