git初始化使用
1、下载git客户端并安装,下载地址为:https://git-scm.com/download/mac
2、gitlab账号申请注册
3、生成密钥,并添加到gitlab
(1)配置名字和邮箱:终端输入
git config --global user.name “xuqiong”
git config --global user.email “xuqiong@qbb6.com”
(2)生成密钥:终端输入
ssh-keygen -t rsa -C “emailname@gmail.com”
按3个回车,完成
最后得到了两个文件:id_rsa和id_rsa.pub
在如下目录找到生成的SSH Key:/users/xuqiong/.ssh/id_rsa.pub
(3)添加密钥到gitlab
用vim查看id_rsa.pub文件内容
并将内容添加到gitlab中:
点击右上角个人头像—profile–edit–SSH Keys
添加完成后:
4、gitlab下载代码
(1)在项目下面复制路径
(2)终端输入,进行代码下载
git clone git@114.55.125.27:qbb-maxcompute/maxcompute.git
git实际项目操作流程(实际项目开发需要上级分配项目操作权限)
1.首先去github /gitlab 上新建自己的库。
这时你就有了这个库的url
2.到你工程下面的文件夹
3.执行git init的命令,创建一个.git的文件夹
4.将项目的所有文件添加到本地仓库中 这个命令会把当前路径下的所有文件,添加到待上传的文件列表中。如果想添加某个特定的文件,只需把.换成特定的文件名即可
添加所有文件到缓冲区(从目前掌握的水平看,和后面加“.”的区别在于,加all可以添加被手动删除的文件,而加“.”不行):
git add .
git add --all
5.将刚刚add的文件commit到仓库中去 -m是提交说明
中间你提交的时候如果你之前没有操作过,可能需要你执行2行命令(连接的你的名字还有你的邮箱)
6.将代码关联到git中,用刚刚创建库的URL
7.上传代码到git仓库中去,会创建一个master的分支
8.代码已经上传成功
下面来写下创建分支。
查看分支的情况,前面带*号的就是当前分支
git branch
创建分支
git branch 分支名
切换当前分支到指定分支
git checkout 分支名
创建分支并切换到创建的分支
git checkout -b 分支名
合并某分支的内容到当前分支
git merge 分支名
删除分支
git branch -d 分支名
如果两个分支同时进行了同一个文件的修改和提交,在merge时就会产生冲突,首先要手动打开文件解决冲突,再提交,就相当于进行了merge
从下图可以看到,红色和绿色的虚线分别代表两个分支,两个分支分别进行了commit,最新的一次提交将两个分支内容进行了合并
查看分支合并图
git log --graph
使用命令:git branch -a 来查看所以分支前面带remotes的是远程仓库分支,前面*表示我们在当前分支
1.创建本地新分支
2.到新创建的本地新分支中去
3.push到远程
4.新分支已经创建
下面来写修改代码提交,我们在新分支下面修改。
选择分支:git checkout new_branch_440
将修改的内容添加到本地仓库:git add .
提交代码:git commit -m ‘update message’
提交到远程仓库:git push -u
删除文件:git rm filename
查看git库的状态,未提交的文件,分为两种,add过已经在缓冲区的,未add过的
git status
从图中可以看出,绿色的就是已经add过的
比较:如果文件修改了,还没有提交,就可以比较文件修改前后的差异
git diff filename
查看日志
git log
版本回退:可以将当前仓库回退到历史的某个版本
git reset
第一种用法:回退到上一个版本(HEAD代表当前版本,有一个^代表上一个版本,以此类推)
git reset --hard HEAD^
第二种用法:回退到指定版本(其中d7b5是想回退的指定版本号的前几位)
git reset --hard d7b5
具体的效果如下
查看命令历史:查看仓库的操作历史
git reflog
git远端库相关
git remote add origin git://127.0.0.1/abc.git 这样就增加了远程仓库abc。
git remote remove origin移除远端仓库
将本地仓库内容推送到远端仓库(-u 表示第一次推送master分支的所有内容,后面再推送就不需要-u了),跟commit的区别在于一个是提交到本地仓库,一个是提交到远程仓库
git push -u origin master
从远端库更新内容到本地(相当于svn的update),
git pull
tips:如果push的时候,本地和文件和远端文件有冲突,就要先pull、然后手动解决冲突,才能继续push