Git 基本操作

1. Git官网

https://git-scm.com/downloads

官网可直接下载,傻瓜式安装

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>

posted on 2018-06-04 16:15  记忆悔中行  阅读(206)  评论(0编辑  收藏  举报

导航