看过廖雪峰的git教程后,突然感觉这十几年用的SVN不是很高端。于是,用了两天的时间,看完了他有关git的基础教程。总结如下:
特点
git是一个利用指针操作的代码库,与svn相比更加有效率。在代码冲突方面,git的分支合并的思路,相比svn,更好的解决了由于冲突造成的不必要的矛盾。
一、安装
可以从git的官方网站找到对应的安装程序,windows版也可以下载。
二、建立本地仓库及对本地文件的操作
建立仓库learngit
mkdir learngit
cd learngit
pwd /*显示绝对路径*/
git init
建立文件
1、现在仓库根目录下建立文件
2、上传文件
git add 文件名
git commit -m "wrote a new file"
查看状态
git status
查看不同
git diff 文件名
查看版本
git log
git log --pretty=oneline
回退版本
git reset --hard HEAD^
git reset --hard 版本号,只写前几位即可
查看过往历史版本号
git reflog
取消修改
git checkout --[file]去修改到最会一次暂存区或者提交状态
git reset HEAD [file]彻底清除掉暂存区的内容,回退到上一个版本
删除文件
git rm [file]
git commit -m "delete a file"
三、建立远程仓库,并进行操作
在github上建立当前pc的SSH
ssh -keygen -t rsa -C yourname@yourname.com
一路回车
在github中,ACCOUNT中add ssh key。把根目录下的*.pub的内容添加到github中。
将本地仓库上传到远程仓库
在github中,add new repository.写上名字。
git remote add origin git@github.com:yourname/*.git /*在远程建立一个本地的镜像*/
提交代码 git push (-u) origin master 将本地的master分支添加到远程
将远程仓库克隆到本机
git clone git @github.com:yourname/*.git
cd 本机目录
ls
四、分支管理
原理:改变HEAD的指向位置,从而改变版本的不同。
建立分支
git checkout -b 分支名字
切换分支
git checkout 分支名字
合并分支
git merge dev/*需要在合并的目标分支下执行这条语句*/
删除分支
git branch -d dev
查看分支
git branch /* 带有型号的当前分支*/
分支冲突
在合并分支时,如果分支有冲突,在文件中直接有记录,打开文件进行操作即可。只针对UTF-8编码的无BOM格式。
git merge dev 这是fast-forward模式
git merge --no-ff -m "fdjfdjfjdfjf"
查看合并情况
git log --graph --pretty=oneline --abbrev-commit