git常用命令

1.git 常用命令:

cd 文件夹名字 : 进入文件夹
cd … :返回上一个文件夹
git clone 项目地址 : 将项目复制到本地 *
git pull : 更新本地项目代码。
git branch : 查看当前分支
git branch -a : 查看项目所有分支
git checkout 分支号 :切换到指定分支 *
git status : 查看本地修改过但未提交的文件名 *
git diff : 查看本地修改过但未提交的文件
git reset --hard : 清除本地提交前的所有修改 *
git merge 分支号: 将指定分支的代码合并到当前的分支
git add . --all : 将本地所有修改提交 1 (代码仍在本地)
git commit -m “备注信息” : 将本地所有修改提交 2 (代码仍在本地)
git push origin 分支号 : 将本地的代码提交到远程代码库 3 (代码会提交到测试环境)
[email protected]:csupplier-supplier/csupplier-supplier.git feature/20180622_2161256_quo_2

2.如何生成SSH key

Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git则需要SSH的配置。
github的SSH配置如下:
1)设置Git的user name和email:
$ git config --global user.name “guoheng”
$ git config --global user.email “[email protected]
2)生成SSH**过程:
①查看是否已经有了ssh**:cd ~/.ssh
如果没有**则不会有此文件夹,有则备份删除
②或者查询本地C:\Users\wb-gh179576.ssh是否生成有id_rsa和id_rsa.pub文件,若生成有文件则说明已经生成ssh key值
3)生成**命令:
$ ssh-****** -t rsa -C “[email protected]
按3个回车,密码为空。
Your identification has been saved in /home/tekkub/.ssh/id_rsa.
Your public key has been saved in /home/tekkub/.ssh/id_rsa.pub.
The key fingerprint is:
最后在本地C:\Users\wb-gh179576.ssh文件夹下,得到了两个文件:id_rsa和id_rsa.pub
4)添加**到ssh:ssh-add 文件名
需要之前输入密码。
5)在github上添加ssh**,这要添加的是“id_rsa.pub”里面的公钥,将id_rsa.pub中的内容全部复制到ssh菜单下
打开https://github.com/ ,登陆xuhaiyan825,然后添加ssh。
6)测试:ssh [email protected]
The authenticity of host ‘github.com (207.97.227.239)’ can’t be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘github.com,207.97.227.239′ (RSA) to the list of known hosts.
[email protected]: Permission denied (publickey).

3.rebase用法

1)rebase使用场景:
A从master拉dev1分支,B从master拉dev2分支,A修改dev1代码,增加feature1并合入master,那么B开发的master分支就不是最新的master分支,B需要做rebase,将本地master更新为最新master后,基于最新的master开发
如图:
在这里插入图片描述

2)执行步骤: ①在A做完hotfix后,B需在dev2分支上执行: git:(dev2) git rebase master rebase 做了什么操作呢? • 首先,git 会把 feature1 分支里面的每个 commit 取消掉; • 其次,把上面的操作临时保存成 patch 文件,存在 .git/rebase 目录下; • 然后,把 feature1 分支更新到最新的 master 分支; • 最后,把上面保存的 patch 文件应用到 feature1 分支上; 从 commit 记录我们可以看出来,feature1 分支是基于 hotfix 合并后的 master ,自然而然的成为了最领先的分支,而且没有 merge 的 commit 记录 ②在 rebase 的过程中,也许会出现冲突 conflict。在这种情况,git 会停止 rebase 并会让你去解决冲突。在解决完冲突后,用 git add 命令去更新这些内容。 ③解决完冲突后,执行git rebase --continue,这样 git 会继续应用余下的 patch 补丁文件。 ④在任何时候,我们都可以用 --abort 参数来终止 rebase 的行动,并且分支会回到 rebase 开始前的状态。 git rebase —abort