Git相关操作
理解工作区和暂存区的区别?
工作区:就是你在电脑上看到的目录,比如目录下testgit里的文件(.git隐藏目录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区范畴。
版本库(Repository):工作区有一个隐藏目录.git,这个不属于工作区,这是版本库。其中版本库里面存了很多东西,其中最重要的就是stage(暂存区),还有Git为我们自动创建了第一个分支master,以及指向master的一个指针HEAD。
使用Git提交文件到版本库有两步:
第一步:是使用 git add 把文件添加进去,实际上就是把文件添加到暂存区。
第二步:使用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支上。
常用指令
设置git用户名和邮箱标识
1  | git config --global user.name "用户名"  | 
1  | git config --global user.email "你所想绑定的邮箱"  | 
查看当前git用户信息
1  | git config user.name #查看用户名称  | 
初始化仓库
1  | git init  | 
增加文件到暂存区
1  | git add 文件.后缀  | 
1  | git add . #指的当前目前下所有文件  | 
把文件提交到本地仓库
1  | git commit -m "这里填写本次提交的注释"  | 
查看是否还有文件未提交
1  | git status  | 
查看文件对比上次提交修改了什么内容
1  | git diff 文件  | 
查看commit日志
1  | git log  | 

git log命令显示从最近到最远的显示日志,我们可以看到最近三次提交,最近的一次是,增加内容为333333.上一次是添加内容222222,第一次默认是 111111.如果嫌上面显示的信息太多的话,我们可以使用命令 git log –pretty=oneline 演示如下:

commit版本回退
回退前几个版本
1  | git reset --hard HEAD^  | 
如果是退回到上上个版本那么只需要多加个^即可,其他也依次类推,比如:
1  | git reset --hard HEAD^^  | 
当然,如果回退的版本太多的话,可以这么写:
1  | git reset --hard HEAD~100 #这里表示回退到前100个版本  | 
按照版本号回退
1  | git reset --hard 版本号 #注意这里版本号可以不用写全,可以只写前面7个或以上,反正不会和其他版本产生歧义就行  | 
有2种情况,如下:
1.readme.txt自动修改后,还没有放到暂存区,使用 撤销修改就回到和版本库一模一样的状态。
2.另外一种是readme.txt已经放入暂存区了,接着又作了修改,撤销修改就回到添加暂存区后的状态。
撤销修改和删除文件操作
1  | git checkout -- 文件名称  | 
绑定远程仓库
第一步:
1  | ssh-keygen -t rsa -C "对应你的账号邮箱"  | 
创建好之后可以去C盘下的User目录对应用户账号的.ssh里面看到相应创建
其中
id_ras是私钥,这玩意不泄露出去
id_ras.pub是公钥,可以放心告诉其他任何人
第二步:登录github,打开” settings”中的SSH Keys页面,然后点击“Add SSH Key”,填上任意title,在Key文本框里黏贴id_rsa.pub文件的内容。
取消绑定远程仓库
1  | git remote remove origin #这个origin是绑定时候的仓库标签别名  | 
创建分支并进入
1  | git checkout -b dev #这里指的是创建一个名为dev的分支  | 
git checkout 命令加上 –b参数表示创建并切换,相当于如下2条命令
git branch dev
git checkout dev
查看当前分支
1  | git branch  | 
合并分支
第一步:
比如这里切换到master分支
1  | git branch master  | 
第二步:
1  | git merge dev  | 
git merge命令用于合并指定分支到当前分支上
合并之后,我们可以看到,和dev分支最新提交的是完全一样的。
合并完成之后,我们可以接着删除dev分支了,操作如下:
 1
2 git branch -d dev #删除dev分支
git branch #查看当前分支
如果合并时候发生冲突你想只保留当前分支版本可以再继续用以下指令:
1  | git chekout --ours <文件路径> #只针对一个文件  | 
如果合并时候发生冲突你想只保留合并进来的分支版本可以再继续用以下指令:
1  | git chekout --theirs <文件路径> #只针对一个文件  | 
解决冲突过后即可使用add标记冲突以解决,并使用commit指令继续合并
修改分支名称(重命名分支名称)
1  | git branch -m oldName newName  | 
删除分支
1、删除本地分支
1  | git branch -d <localBranchName> #localBranchName就是本地分支的名称  | 
2、删除远程分支
1  | git push -u origin -d <branchName> #<branchName>就是分支的名称  | 
其中==-d==是==-delete==的缩写
Git 拉取远程分支代码并合并到本地分支步骤
1  | git remote -v #查看远程  | 
不在本地新建分支版本:
1  | 查看远程  | 
他奶奶的直接拉取合并(不推荐用,万一出岔子自己负责)
1  | 查看远程分支  | 






