GIT操作宝典

git用远程覆盖本地

git fetch --all
git reset --hard origin/master

清除GIT版本信息

find . -name “.git” | xargs rm -rf

我怎么知道分支是否已经合并到master中?

git branch --merged master列出合并到母版中的分支
git branch --merged 列出合并到HEAD中的分支(即当前分支的尖端)
git branch --no-merged 列出尚未合并的分支

===【将远程git仓库里的指定分支拉取到本地(本地不存在的分支)】=

git checkout -b 本地分支名 remotes/origin/远程分支名
git checkout -b branch_name remotes/origin/branch

克隆代码

git clone <git地址>   克隆远端地址(http和ssh协议,ssh需要上传公钥到服务器)

常用命令集合

git pull --rebase 【拉取线上版本】
git push 【将本地提交的代码推送到远端服务器】
git status 【查看当前发送变化文件】
git add . 【增加文件到本地缓存去】
git reset HEAD +文件  【撤销本地缓存(add的反向操作)】
git commit -m 提交日志 【提交并添加日志到本地仓库】
git commit -am 提交日志 【新增并提交的命令】
git checkout . 【撤销当前改变的代码】
git checkout {文件} 【撤销文件的改变的代码】
git revert {提交ID} 【还原指定版本的修改】
git status -s  【显示简单的修改列表】
git rm 文件 【删除文件】
git rm -f 文件 【删除文件】

暂存区使用

git stash  【将本地代码提交到暂存去】
git stash list 【查看本地暂存去的存放历史】
git stash pop 【将暂存去的记录弹出】

分支命令

git branch -a  查看所有分支
git branch -r  查看远程分支
git branch –vv 查看本地分支和远程分支关系
git branch –u origin/<分支名>   将当前分支和远端分支做关联
git checkout -b <分支名> origin/<分支名>
git branch --set-upstream-to=remotes/origin/<分支名> <分支名>  本地远端分支关联 
git push --set-upstream origin 分支名   à将本地分支推到远端
git push origin <分支名>:<分支名>   本地推送到远端
git push origin :br (origin 后面有空格【删除远程分支】 分支名称不用添加 remotes/origin
git push origin  :remotes/origin/dev(名称是remotes/origin后面的)
如果同事存在tag名称和分支名相同是 需要加入 
git push origin  :refs/heads/分支名 (删除分支)
git push origin  :refs/tags/分支名 (删除标签)
git branch -d +分支名 删除本地分支
git cherry-pick 提交ID

git push -u origin develop   把develop分支推送到远程仓库

git branch --set-upstream-to=remotes/origin/dev dev  本地分支和远端分支关联

git用远程覆盖本地:git fetch --all && git reset --hard origin/master && git pull
git fetch --all 
git reset --hard origin/master
git pull


版本回滚

git reset --hard HEAD^    	返回上1个版本
git reset --hard HEAD^^   	返回上2个版本
git reset --hard HEAD~100 	返回上100个版本
git reset --hard <commit id> 返回制定Id的版本

合并多次提交记录

git rebase -i HEAD~4  
注意:该命令执行后,会弹出一个编辑窗口,4次提交的commit倒序排列,最上面的是最早的提交,最下面的是最近一次提交。修改第2到第四行 的第一个单词pick为squash
git add . 
git rebase --continue
git rebase --abort

合并代码

git merge +分支名
### 解决冲突后
git add .  
git status
git rebase --continue     
git push
### 合并制定的提交版本
git cherry-pick <commit id>

提交日志

git show <commit id>  查看某次commit的修改内容
git log -p <filename> 查看某个文件的修改历史
git log -p -2   查看最近2次的更新内容
git reflog   所有提交的log
git log -n 查看n次提交的日志
git show commitId +文件名

日志查看
查看日志:git log
如两天前的提交历史:git log --since=2.days
如指定作者为"BeginMan"的所有提交:$ git log --author=BeginMan
如指定关键字为“init”的所有提交:$ git log --grep=init
如指定提交者为"Jack"的所有提交:$ git log --committer=Jack

存储密码和解除存储

git config credential.helper store
git config --system --unset credential.helper 

常用配置

git config --system --list  查看系统配置
git config --global user.name “XXX“
git config --global user.email  “XXX@gmail.com"
git config --list

配置Git 公钥私钥

进入C:\Users\xxx\.ssh目录;检查是否存在id_rsa和id_ras_pub文件;
如果不存在则在bash_shell中执行:ssh-keygen -t rsa -C xxx@xx
在Windows的CMD窗口中:type C:\Users\xxxx\.ssh\id_rsa.pub 或者在linux的shell窗口下:cat ~/.ssh/id_rsa.pub       获取公钥
将公钥上传到服务器上即可

美化GIT Bash Shell 日志显示(配置.gitconf)

[user]
name = xxx(自己修改)
email = xxx@xx.com(自己修改)
[alias]
logs = log -15 --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
ck = checkout
cm = commit
pl = pull --rebase
ps = push
ss = status
mg = merge
rb = rebas -i HEAD~10

对git 的常用命令添加别名,以上仅供参考,大家可以自己定义。

在这里插入图片描述

GIT标签

打标签

git tag -a 标签名 指定版本号
git tag -a 标签名 -m ‘标签备注’

查看标签

git tag 所有的标签
git tag -l ‘v1.4.2.*’
git show 标签号

分享标签

默认情况下,git push 并不会把标签传送到远端服务器上,只有通过显式命令才能分享标签到远端仓库。
其命令格式如同推送分支:
git push origin 标签名
git push origin –tags

Git比较

git diff 【hashcode1】【hashcode2】文件名

git log #查看commit的历史
git show #查看某次commit的修改内容

10. Git分支覆盖

方法1:
git push origin develop:master -f
[本地的develop分支—> 强制(-force)推送到远程master]
git check master
git pull
方法2:
git checkout master // 切换到旧的分支
git reset –hard develop // 将本地的旧分支 master 重置成 develop
git push origin master –force // 再推送到远程仓库

11 查询分支是否合并

11.1查询当前分支合并过的分支名

git log |grep "Merge branch*"

11.2 查询当前分支是否合并过某个分支

git log |grep 分支名
git log 分支名 |grep 提交ID
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值