1:首先下载安装git
https://www.git-scm.com/download/
2:新建一个文件夹作为存放你项目的文件夹,然后问你们项目上的人要你们项目的git地址,你们老大把你拉到项目里,你就能看到下面的东西,能看到项目的地址,然后复制该地址,回到你的git终端,执行命令 git clone 你的项目地址
3:然后配置下你的ssh key
首先配置下信息,查看个人信息命令
这里我是已经配置过了可以看到相关信息,如果是第一次配置的话应该是没有的,需要进行如下配置
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"
然后执行生成密匙的命令,高亮的部分就是生成密匙的路径
ssh-keygen -t rsa -C 你的邮箱
然后在该路径下会看到生成如下的两个文件,其中id_rsa.pub就是你要的密匙内容。
然后去git上配置密匙
最后保存就配置完毕了。
说下工作中经常要做的git操作
基于主分支切新的分支
现在要做两个功能,功能a和功能b,而且两个模块不是同时上线,这时候是要基于主分支切出两个新的分支分别来开发这两个新的模块的
git checkout -b testa origin/master
git checkout -b testb origin/master
在本地创建testa和testb分支用于开发功能a和b,基于远程的分支master(也就是在本地copy远程master的代码)
根据创建顺序这时是在testb分支上,想切换到testa分支开发a功能怎么办呢
git checkout testa切换到testa分支
2:在testa分支开发完以后执行下面的命令
git status(查看你改动了那些文件),如下所示,红色的文件就是你改动的文件
如果想看下具体改动了哪些内容
git diff 文件名,这里能看到我删除了一行内容
确认没问题的话 git add . 该命令会把你所有改动的文件添加到暂存区 ,如果只想添加某个文件到暂存区,git add 文件名
添加到暂存区以后再次git status看到改动的文件都是绿色,代表这两个改动的文件都被添加到暂存区了已经
然后执行下面的命令,将暂存区的文件进行提交
接下来多人合作的话进行代码拉取看是否有冲突,再将代码push到远端
git pull --rebase origin 远程分支名
然后推送到远端
git push origin 远端分支名
至此代码的基本提交流程完毕
问题1:想要看下该分支都是谁提交的,提交了啥
git log
查看提交记录
2:应该在testa分支进行开发a功能的,但是忘了切换分支在testb分支开发了怎么办
全部撤销再重新开发????
git有一个命令叫cherry-pick
首先在这个分支上正常提交这些改动的文件
然后 git log看下commit id
切换到你应该开发的分支,也就是testa分支
执行命令 git cherry-pick commitid
这样做的操作相当于是赋值一份testb分支改动的代码到testa分支上
但是testb上误开发的代码怎么还原呢
git checkout .
就是本地还原所有的改动文件
3:合并代码
切到主分支
git checkout master
合并testa分支的代码
git merge testa
4:git pull 拉取代码的时候产生冲突
pull的时候产生冲突,这时候不要慌,首先 git status看下那些文件冲突,这里红色部分即是
解决完冲突以后,保存下,然后 git add 冲突文件 ,提交git commit -m, 最后git push代码推送到远端即可
5:想看下某次提交的具体改动内容
git show 提交的commit的id
6:想删除本地分支和远程分支
删除本地 git branch -d 分支名
删除远程分支 git push origin --delete 远端分支名
7:本地提交了,想撤回到某个版本
git reset --hard commit id//回退到某个版本id,本地也会回退
git reset HEAD~1 //回退到上一个版本,本地不会回退,会变成未提交状态
8:在本地的A分支正在开发,但是这时候需要切换到另一个B分支开发,但是这时候因为A分支有改动直接切换是不行的,这时候需要使用命令 git stash
该命令是将本地的改动存放到堆栈中,本地取消改动,使用该命令以后可以切换到B分支,B分支开发以后切换回A分支,这时候该如何拿回刚刚的改动继续开发呢
使用git stash pop,该命令将拿回之前的存在堆栈的内容,恢复到add之前的状态,可以继续开发了,开发完以后按照正常流程add,commit就行
git stash 还可以应用的一个场景就是,想在B分支开发,但是忘记切换分支,直接在A分支开发,这时候可以在A分支开发完以后git stash,然后切换到B分支,直接git stash pop,这样就会直接将内容应用在B分支的工作空间里,完美~~