git的安装,配置和基本使用
Posted 青春无限坑!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git的安装,配置和基本使用相关的知识,希望对你有一定的参考价值。
一、git客户端的安装
参照文档 https://www.runoob.com/w3cnote/git-guide.html
二、打开git命令行窗口
选择一个目录,右键点击
这个窗口,可以操作linux命令
四、设置全局身份
git config --global user.name "runoob"
git config --global user.email test@runoob.com
五、创建本地版本库
命令:git init
发现test1下有一个隐藏文件(.git),就表示版本库创建成功,test1目录就是一个本地版本库
注意:.git目录不能删除,删除后,这个版本库就不存在了
六、工作流控制
1、工作流程
svn的状态流程
1)、里面有新文件,svn里面会有一个问号
2)、将文件提交add,文件就会变成加号
3)、commit文件,新文件就会变成绿色
git也是这样的流程
你的本地仓库由 git 维护的三棵"树"组成。第一个是你的 工作目录
,它持有实际文件;第二个是 暂存区(Index)
,它像个缓存区域,临时保存你的改动;最后是 HEAD
,它指向你最后一次提交的结果。
相关命令:
git status 查看本地git版本库的版本状态(工作区和分支进行比较)
git add filename(提交多个文件空格隔开) 把当前文件加入到暂存区
git add * 把当前工作区所有的文件添加到暂存区中
git commit -m ‘代码提交信息’ 把暂存区中的文件提交到当前所在的分支(master),但还没有到你的远端仓库(github)
七、工作区和暂存区
八、本地版本库-文件管理
1、文件管理-添加文件(添加文件到分支)
步骤1,先本地仓库,创建一个新文件,使用命令touch <filename> 或者vim <filename>
然后查看状态git status
步骤2,add上去,再查看状态
步骤3,git commit -m 提交说明,再查看状态,提交没有新文件提交了,和版本库一致
注意:无论修改本地仓库的文件,添加文件,删除文件后,再查看状态,都会是下面这样,表示有哪个文件有改动,这是就要先add上去,再commit
2、文件管理-删除文件
1)git rm -rf 文件名
2)git commit -m 删除说明文字
注:
当工作区,新建了一个文件,但未提交到分支上时,可以使用rm -rf 进行删除
但当分支上有本地的文件,要删除本地的文件,就要执行git rm -rf
3、文件管理 - 版本回退
相关命令
git log 查看当前分支的版本提交记录
git log --pretty=oneline 和上面命令一样的作用,只是输出日志一行显示
1)第一种回退方式(通过^的数量,决定回退几个版本)
命令:git reset --hard HEAD^
^表示往上回退一个版本,^^表示往上回退两个版本,以此类推,但如果回退版本过多,不可能写n个^
2)第二种回退方式,回退到指定的版本号,需要知道版本号
命令:git reset --hard 版本号
版本号支持模糊匹配,下图红框就是版本号
4、文件管理-文件修改
思路:在工作区创建文件 ---> add到暂存区 ---> commit到分支
相关命令
git diff head -- 文件名 查看当前文件和版本库的区别
特点:git对文件只跟踪的文件的修改,不是整个文件
5、文件管理 -撤销修改
情况1:更改后的文件,只存在于工作区,没有add上去
方法1:
相关命令:git checkout -- filename 丢弃工作区的修改,从版本库把文件还原到工作区
方法2:直接在工作区打开这个文件,并删除需要更改的数据
情况2:数据使用add,添加到了暂存区
方法1:也是直接在工作区打开这个文件,并清掉不好的数据,然后再重新add上去
方法2:使用命令git reset HEAD <filename> 可以把暂存区的修改撤销掉,重新放回工作区
思路:
先使用上方的命令把暂存区的数据回退到工作区
然后再使用情况1的方法进行回退
情况3:数据使用add添加到了暂存区,并commit到了版本库
使用版本回退的方法回退 git reset --hard HEAD^
情况四:把文件上传到了远程仓库,这种情况就只能希望别人看不到了
九、分支管理
当使用git init创建一个版本库后,会默认新建一个分支(master),master就是一条主分支
1、创建分支和切换分支
相关命令:
git checkout -b 分支名称 创建分支并切换
git branch 分支名称 创建一个分支,但不切换
git checkout 分支名称 切换分支
git branch 查看所有的分支,其中星号表示当前所在的分支
2、删除分支
git branch -d 分支名称
注意:不能删除当前所在的分支,需要切换到其他分支再进行删除
3、合并分支
相关命令:git merge 分支名
1)合并前,先看目前有两个分支master,dev的时间线
同一个文件readme.txt,在master分支下里面只有一行内容,在dev分支下,有两个内容
2)要把dev的代码合并到master分支
先切换到master分支,再执行命令:git merge dev
合并后,发现时间线就会变成下图了
4、合并分支后发生冲突
先看下方的时间节点,两个分支(master和dev)都各种分别有新的提交
1)先执行合并,将dev分支合并到master,git merge dev
发现出现了一个临时分支
然后打开需要合并的文件,出现了冲突
解决方法:
1)打开这个文件,把下方红框部分删掉,再保存
2)查看git status,提示两者都有修改
3)执行add,再commit就可以了
5、分支管理 -bug分支
使用场景
现有主分支master,从主分支切了一个dev分支开发一个NB的功能,但是写了一半,领导说线上和master分支有一个重大bug需要立马解决,你看了这个bug5分钟就可以搞定,但是我还在开发新功能,但没有提交,也不能提交。所有需要把当前dev分支的工作区隐藏起来,然后切换到master分支,重新切一个新bug分支出来解决bug解决完之后回到master再合并这个bug分支,再删除bug分支。
相关命令:
git stash 储藏当前分支的工作区
储藏完成后,再执行git status,发现工作区是干净的
git stash list 显示当前分支储藏的工作区的集合
git stash pop 取出当前分支储藏的工作区栈顶的第一个储藏对象
九、github 远程仓库
远程仓库的配置
1、首先在本地创建ssh key;
命令:ssh-keygen -t rsa -C "your_email@youremail.com"
后面的your_email@youremail.com
改为你在github上注册的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。
2、成功的话会在c/user/用户/
下生成.ssh
文件夹,进去,打开id_rsa.pub
,复制里面的key
。
id_rsa 秘钥
id_rsa.pub 公钥
3、回到github网址配置秘钥
第一步,点击右上角下拉列表中的Settings(账户配置)
第二步,左边选择SSH and GRG keys,点击SSH keys中的new ssh key
第三步,title随便填,Key粘贴在你电脑上id_rsa.pub文件中生成的key,然后点击add ssh key按钮进行保存
添加成功后,就会变成这样了,且会发生邮件给你这个邮箱
4、github添加远程仓库
本地创建一个git仓库,又想在github创建一个远程仓库,并且使两个仓库进行远程同步,这样github上的仓库就可以作为备份,又可以让其他人通过该仓库来协作
1)先在github,创建一个远程仓库
5、本地仓库和远程仓库进行关联
git remote add origin https://github.com/xiejinming/0704.git
origin表示远程仓库,可以修改,但一般还是不用
xiejinming表示github的账号
0704表示远程仓库名称
把本地仓库的数据推送到远程仓库
git push -u origin 分支名
然后查看远程仓库,发现推送成功了
再推送一个dev分支上去
发现github上面就出现了两个分支
从远程仓库克隆数据到本地
1、先在github找到需要克隆的仓库,找到地址并克隆
2、本地执行clone命令
git clone https://github.com/xiejinming/0704.git
3、克隆分支(解决其它分支不显示的问题)
注意:在clone时默认是把当前地址里面的所有分支全部clone下来,但是只有master会显示
相关命令:git checkout -b dev origin/dev
以上是关于git的安装,配置和基本使用的主要内容,如果未能解决你的问题,请参考以下文章