GIT操作宝典

克隆代码

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 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 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的修改内容

发布了58 篇原创文章 · 获赞 6 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/dong8633950/article/details/83378434
今日推荐