git基本概念及命令大全(适合入门)

大家可以收藏起来慢慢看,此文档绝对包含了日常所需要的命令,以及一些解决问题的命令,强烈建议收藏!!

一、概念

Git本地有四个工作区域∶
● 工作区 (Working Directory )
○ 工作区,在电脑上能看到的目录
● 本地版本库
○ 工作区有一个隐藏目录 .git
在这里插入图片描述

● 暂存区 (Stage/Index)
○ 用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表
● 远程的git仓库 (Remote Directory)
○ 远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
交换关系如下:
在这里插入图片描述

基本命令

从git服务器拉取代码
git clone https://github.com/xxxxxxxxx
配置开发者用户名和邮箱
git config user.name xxx
git config user.email xxx

创建、重命名、查看、删除项目分支,通过 Git 做项目开发时,一般都是在开发分支中进行,开发完成后合并分支到主干。
基于某个分支创建新分支
git branch xxx

对分支重命名
git branch -m 旧  新
查看分支列表
git branch
删除分支
git branch -d  xxx
切换分支
git checkout xxx   从当前分支切换到xxx分支
git checkout -b xxx   基于当前分支新建名为xxx的分支
查看文件变动状态
  git status -s
添加
   git add .  全部添加
git add 指定目录  添加指定内容
提交
git commit -m '提交原因'
推送远端
  git push --set-upstream  origin  xxx   将xxx推送远端

拉取远端代码(多人开发时开发前一定要先拉取)
git pull

看日志
git log
为项目标记里程碑
git tag xxx
git push origin xxx
将当前开发完成的内容标记为xxx并将xxx推送远端
将本地修改暂存

暂存:git stash save ‘保存的名字’
取出:git stash pop 注:跟栈一样先进后出此为取出
查看:git stash list 我保存了两个a是先保存的,b是后保存的,取出的话先取出b再取出a
在这里插入图片描述
也可通过这种方式取出指定内容
在这里插入图片描述
git stash drop stash@{xx}删除指定暂存内容
git stash clear 清除所有暂存

移动或重命名文件、目录

git mv 旧 新
将 旧重命名为新 ,同时添加变动到暂存区,加 -f 参数可以强制重命名,相比用 mv 旧 新命令省去了 git add 操作

从工作区和暂存区移除文件

git rm xxx

删除远程分支

git push orign --delete xxx

查看远程分支

git branch -a

删除以提交再远程仓库的文件

git rm -r --cached xxx
后提交 git commit -m “delete .idea”

关联远程仓库

git remote add origin https:xxxxx

首次推送

git push -u origin master

查看分支合并图全部

git log --graph
git log --graph --pretty=oneline --abbrev-commit 简版

git symbolic-ref --short -q HEAD 查看当前分支名称

查看当前最后一次提交的commit_id

git log -1 --pretty=format:%H # 完整的

git log -1 --pretty=format:%h # 前7位

可以查看已经commit 但是还没有push 的代码

git log master ^origin/master

查看到未传送到远程代码库的提交描述/说明

git cherry -v

命令如下:
git show COMMIT

git diff COMMIT^!

三、高级命令

rebase

git rebase branch_name 重新定义分支的版本库状态,合并分支,这个和merge很像但是有区别
在这里插入图片描述

submodule

git submodule 通过 Git 子模块可以跟踪外部版本库,它允许在某一版本库中再存储另一版本库,并且能够保持2个版本库完全独立
git submodule add https://github.com/gafish/demo.git demo
将 demo 仓库添加为子模块
git submodule update demo
更新子模块 demo
proc/cpuinfo processor

添加暂存区文件撤回

如果不小心把不需要的文件添加到暂存区,怎么撤回?
比如我不小心把依赖包文件夹node_modules(这个很大而且没必要git管理这份代码)add了,怎么撤回这个文件?
第一种方法:
$ git reset HEAD – node_modules
第二种方法:
$ git rm -r --cached node_modules

将已推送的commit撤回

将错误的commit且以推送到远端撤回提交
git reset --hard commit_id
git push origin HEAD --force

撤销commit

git reset --soft HEAD^ 如果想连着add也一起撤销的话将sort 换成 hard
HEAD^ 表示上一个版本,即上一次的commit,也可以写成HEAD~1
如果进行两次的commit,想要都撤回,可以使用HEAD~2
–soft
不删除工作空间的改动代码 ,撤销commit,不撤销git add file
–hard
删除工作空间的改动代码,撤销commit且撤销add
–mixed:
(默认操作)将分支回退到指定提交,暂存区也被同步为该指定提交,工作区保持不变。
git commit --amend
这时候会进入vim编辑器,修改完成你要的注释后保存即可。

cherry-pick(将某提交合到当前分支)

git cherry-pick commit号 合并别的分支的指定提交到当前分支

合并

git merge 分支1 将分支1合并到当前分支
git merge --abort 取消合并
git checkout . //当前分支的修改会重置 谨慎使用

查本地所有分支

git branch --contains CommitID

查远程所有分支

git branch -r --contains CommitID

查本地和远程的所有分支

git branch -a --contains CommitID

撤销目录下的add

git restore --staged src/main/java/com/xxx/x’x’x/parser/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值