Git
搁置
对应git stash
Shelf的地方,译为架子,Unshelve可以取消搁置,
当我们需要切换分支,但又不想提交代码时,可以将改动搁置,检出之后再回来 在git-Shelf可以看到搁置代码,使用Unshelve取消搁置还原代码
git stash pop
当然如果不需要了可以删除搁置的代码,删除后会进入Recently Deleted,防止误删
暂存
对应git add
添加到暂存区之后,检出分支是会丢失没有提交的代码的。。。
git stash 和 git add 的区别及使用技巧_git stash和git add区别-CSDN博客
restore和reset
restore是将暂存区的改动丢弃,未跟踪的文件restore之后不会受影响
GIT中reset, restore and revert指令的区别_git restore-CSDN博客
Git命令
- Git是免费、开源的分布式版本控制系统
- 用户即使离线也可以本地提交,push推送到远程服务器才需要联网。
认识git工作区域:
- 工作空间:电脑本地看到的文件和目录,在git的版本控制下就形成了工作空间
- 暂存区,临时存放你未提交的改动,.git目录下,比如:git add
- 本地仓库:git clone之后就是把远程仓库克隆到本地仓库
- 远程仓库:github、gitee、gitlab这些
红色:没有提交到暂存区,不在版本控制范围之内
绿色:add之后没有提交,在暂存区
蓝色:修改过的文件,提交之后变为正常颜色
git status 查看当前状态
git log 查看提交日志
git merge dev 合并dev分支至当前分支
git add . 添加当前目录全部文件至暂存区
git commit -m '测试' 提交,提交信息为测试
git push origin master 推送至远端分支(master为需要推送分支,按实际需要选择)
git pull origin master 合并远端分支至本地 (git pull 等于 git fetch + git merge)
git pull --rebase origin master rebase方式合并远端分支至本地
git branch 查看当前分支
git branch dev 创建dev分支 (dev可选)
git branch -d dev 删除dev分支
git branch -r 查看远程分支
git branch -a 查看所有分支 (包括远程分支)
git checkout master 切换至master分支
git checkout -b dev 创建dev分支并切换至dev分支
git checkout -b dev origin/dev 创建远程分支到本地
git restore file 丢弃工作区修改(file为具体文件名称)
git restore * 丢弃所有工作区修改
git restore --staged file 回退暂存区文件 不会更改文件内容
git rebase --continue rebase后继续操作
git rebase --abort 退出rebase 操作
基础操作
拉取指定分支:git pull http://117.73.11.3:8090/WindPowerPrediction-server/wpp-web.git zz_develop
- 克隆远程版本库
相当于idea从VCS拉取代码
git clone url 克隆远程版本库
git clone -b <指定分支名> <ssh或者http地址>
git init 初始化git仓库,将工作目录交给git管理,会生成一个.git版本库文件
git remote add origin https://github.com/vuejs/vue.git 指定仓库地址,将远程仓库指定为origin
- 创建开发分支并切换
相当于idea新建分支
git checkout -b dev2 新建一个分支,并且切换到新的分支dev2
git branch dev2 新建一个分支,但是仍停留在原来分支
- git add的使用格式
相当于idea将文件交给git管理
git add . 添加当前目录的所有文件到暂存区
git add [dir] 添加指定目录到暂存区,包括子目录
git add [file1] 添加指定文件到暂存区
- git commit的使用格式
相当于idea打包提交
git commit -m [message] 提交暂存区到仓库区,message为说明信息
git commit [file1] -m [message] 提交暂存区的指定文件到本地仓库
git commit --amend -m [message] 使用一次新的commit,替代上一次提交
- git status
相当于idea文件颜色表示是否修改/新建?
git status 查看当前工作区暂存区变动
git status -s 查看当前工作区暂存区变动,概要信息
git status --show-stash 查询工作区中是否有stash(暂存的文件)
-
git push的使用格式
git push origin <指定的分支名>
-f
-f可选,表示强行推送git push <远程主机名> <本地分支名>:<远程分支名>
-
git log
相当于idea查看提交历史
git log 查看提交历史
git log --oneline 以精简模式显示查看提交历史
git log -p <file> 查看指定文件的提交历史
git blame <file> 一列表方式查看指定文件的提交历史
- git diff
相当于idea比较差异
git diff 显示暂存区和工作区的差异
git diff filepath filepath路径文件中,工作区与暂存区的比较差异
git diff HEAD filepath 工作区与HEAD ( 当前工作分支)的比较差异
git diff branchName filepath 当前分支的文件与branchName分支的文件的比较差异
git diff commitId filepath 与某一次提交的比较差异
- git pull/git fetch
git pull 拉取远程仓库所有分支更新并合并到本地分支。
git pull origin master 将远程master分支合并到当前本地master分支
git pull origin master:master 将远程master分支合并到当前本地master分支,冒号后面表示本地分支
// pull就是fetch和merge的组合
git fetch --all 拉取所有远端的最新代码
git fetch origin master 拉取远程最新master分支代码
分支操作
查看分支
git branch 查看本地所有的分支
git branch -r 查看所有远程的分支
git branch -a 查看所有远程分支和本地分支
删除分支
git branch -D <branchname> 删除本地branchname分支
切换分支
git checkout master 切换到master分支
合并分支
git merge master 在当前分支上合并master分支过来
git merge --no-ff origin/dev 在当前分支上合并远程分支dev
git merge --abort 终止本次merge,并回到merge前的状态
撤销回退
git checkout
如果文件还在工作区,还没添加到暂存区,可以使用git checkout撤销;这也是为什么切换分支的时候一定要记得提交commit一下,因为checkout有可能撤销掉刚写的代码
git checkout [file] 丢弃某个文件file
git checkout . 丢弃所有文件
git reset
git reset的作用是修改HEAD的位置,即将HEAD指向的位置改变为之前存在的某个版本.回退之后后面的版本就会没有了
将暂存区的文件取消暂存或切换到指定版本
git revert
与git reset不同的是,revert复制了那个想要回退到的历史版本,将它加在当前分支的最前端。
git remote
// 列出每个远程服务器的简称 origin
git remote
// -v查看详细信息
git remote -v
分支合并
// 将xx分支合并到当前分支中去
git merge <xx分支>
rebase
rebase好处是: 获得更优雅的提交树,可以线性的看到每一次提交,并且没有增加提交节点。所以很多时候,看到有些伙伴都是这个命令拉代码:git pull --rebase
冲突解决
两个分支同一个文件里面的代码不一样,如果合并就会冲突。
标签:git,暂存区,dev,Git,master,提交,大全,分支 From: https://www.cnblogs.com/code-jia/p/18070570