Git 基本操作
1. Git官网
官网可直接下载,傻瓜式安装
2.初始化配置
启动Git Bash 初始化用户名以及邮箱
git config --global user.name "Your Name" git config --global user.email "email@example.com"
注意 git confi g
命令的 --global
参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
3.创建空版本库
git init
4.下载远程代码
git clone git@gitee.com:supermap/SuperMap-iDesktop-Cross.git
5.1列出本地所有branch
git branch -l
5.2显示远端branch
git branch -r
6.版本切换
Git checkout
7.1查看日志
git log
7.2 展开显示每次提交内容差异
git log -p
8.删除branch
git branch -D branch name
9.分支合并
git merge --no-ff branch name
--no-ff 指的是强行关闭fast-forward方式
fast-forward方式就是当条件允许的时候,git直接把HEAD指针指向合并分支的头,完成合并。属于“快进方式”,不过这种情况如果删除分支,则会丢失分支信息。因为在这个过程中没有创建commit
git merge --squash 是用来把一些不必要commit进行压缩,比如说,你的feature在开发的时候写的commit很乱,那么我们合并的时候不希望把这些历史commit带过来,于是使用--squash进行合并,此时文件已经同合并后一样了,但不移动HEAD,不提交。需要进行一次额外的commit来“总结”一下,然后完成最终的合并。
总结:
--no-ff:不使用fast-forward方式合并,保留分支的commit历史
--squash:使用squash方式合并,把多次分支commit历史压缩为一次
10.拉取远端
git pull
git pull 还可以合并远端修改到本地
在master A、B 在同一位置各自branch出一个分支进行各自的开发工作
A开发结束合并自己的改动到master
B继续开发,当B开发结束后要往master中合并时不能顺利进行 必须先合并master上的改动到branch B 上才可以继续合并
此时使用git pull origin 合并远端master到branch B 上接着可以继续合并到master
11.推送本地修改到远端
git push
如果没有指定远端分支
12.回退
#向上回退100个版本 git reset --hard HEAD~100 #向上回退一个版本 git reset --hard HEAD^
git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态
git stash #把所有没有提交的修改暂存到stash里面。可用git stash pop回复。
git reset --hard HASH #返回到某个节点,不保留修改。
git reset --soft HASH #返回到某个节点。保留修改
13.使用ssh agent 管理私钥
step1. 开启 ssh-agent
$ eval ssh-agent
Agent pid XXX
step2. 添加私钥
$ ssh-add ~/.ssh/id_rsa (如果生成密钥时是使用的默认的,那么就是这个了,如果不是的话就写你的私钥地址吧)
14. 合并多个次提交
使用git rebase合并多次commit
git rebase -i commit
来自 <https://blog.csdn.net/yangcs2009/article/details/47166361>