Git命令

Git已经成为企业协同开发必不可少的工具了。
简单记录下

1、配置

# 生成公钥
ssh-keygen -t rsa -C "your_email@youremail.com"
# 初始化
git init; 
# 自报家门
git config --global user.name "yourname"
git config --global user.email "your_email@youemail.com"
# 克隆到本地
git clone "git.git"
# 添加远程连接
git remote add origin "git.git"

2、提交流程

# 远程仓库commit拉取到本地(更新)
git pull
# 将工作区所有修改/新增加入到暂存区 --all 如果文件有删除 也会提交
git add --all .
# 将暂存区代码提交到工作区
git commit -m "one commit"
# 本地commit推送到远程仓库(推送)
git push

3、分支管理

# 本地分支
git branch
	# 分支名称:新增一个新的分支
	# -u origin/分支名称:可以让当前本地分支track(追踪)某个指定的远程分支
	# -vv:查看每个本地分支track的远程分支
	# -d:删除本地分支
	# -D:删除远程分支
# 将分支代码合并到当前所在分支上去
git merge 分支名称
# 切换分支
git checkout
	# 分支名称:切换到该分支
	# -b 分支名称:创建并切换到该分支
	#-b 分支名称 origin/分支名称:将本地获取到一个分支跟origin/分支名称 关联起来
# 让本地和远程保持同步(同时拉取下来所有最新的远程分支)
git fetch origin
# 推送数据
git push
	# -u origin 分支名称:将本地分支推送到远程仓库,默认分支名称一般为master
	# origin --delete 分支名称:删除远程分支
# 加tag
git tag
	# V1.0:轻量级的tag
	# -a v1.0 -m "test tag":重量级的tag

4、版本

4.1、日志

# 查看提交日志
git log
	# --patch -n:可以显示每次提交之间的diff,-n是查看近n次
	# --stat:展示每次commit的统计信息,包括修改,删除,新增等
	# --pretty=oneline:每个commit展示一行,美观的展示
	# --oneline:只展示一行
	# --graph:显示图像化的commit历史
	# --decorate --graph --all:可以打印出整颗commit树,同时告诉你各个分支当前指向哪个commit object
	# --oneline --abbrev-commit --graph:这是最有用的,可以看到整个commit树结构,包括如何合并的

4.2、版本回退

# 回退版本
git reset
	# --hard HEAD^:回退到前几个版本(^)
	# --hard HEAD~5:回退到前5个版本
	# --hard d324644:回退到指定的commit
	# git reset 只能查看当前HEAD之前的commit

4.3、其他

# 查看所有分支的操作记录(包括已删除和commit和reset操作)
git reflog
# 查看当前指向
git show
	# HEAD^^:查看上几个版本的commit
	# HEAD~5:查看上五个版本的commit

5、其他命令

# rebase:变基,就是改变commit之前依赖的基础commit
git pull --rebase
# 基于之前的commit 重新构建提交历史
git rebase --onto 622e88 9c68fdc

6、高阶命令

6.1、比较差异

# 比较分支差异
git log --abbrev-commit 分支1..分支2
# 比较commit差异
git diff # 工作区和暂存区的差异
	# --cached: 暂存区和仓库的差异
	# HEAD:工作区和仓库的差异
	# 分支1 分支2:两个分支之间的差异
	# HEAD HEAD^:最近两次提交的差异

6.2、暂存未提交代码

# 添加到暂存列表
git stash
	# list:查看暂存列表
	# apply stash@{0}:恢复到指定的一次stash
	# apply:恢复暂存代码
	# drop stash: 删除某个stash
	# -m: 暂存区添加备注

6.3、修改commit

# 操作暂存区
git add -i
	# 进入交互模式
	# 2:update 放入暂存区
	# 3:revert 从暂存区里挪出来
	# 7:quit 退出交互模式
# 修改commit提交历史
git commit --amend # 说白了就是将上一个commit删掉,重新提交,重新提交代码自然会将暂存区的代码提交
# 修改多次commit历史记录
git rebase -i
	# HEAD~3:获取三次提交的commit值 将对应版本的pick改成edit 然后就回到了最早的edit版本,使用git commit --amend修改
	# 然后就回到了最早的edit版本,使用git commit --amend修改
	# 最后一次git rebase --continue就说明完成了所有修改
	# 编辑模式也能 删除、合并、切分 commit
	# 常用:pick:提交 edit:修改commit squash:合并commit到上一个commit

6.4、撤回

# 合并分支出现冲突 还原到未合并的状态
git merge --abort
# 远程仓库撤回commit
git revert HEAD # 回到了上一个commit的状态
git push origin master # 同步撤回远程仓库的commit操作
# 撤回远程分支merge
git revert -m 1 HEAD
git push origin master
# 撤回merge会导致下次合并无法合并merge内容  需进行特殊处理,再撤回到merge的版本,才能找回merge内容 (不建议使用)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值