Git 命令的使用
版本控制系统的类型:
(1) CVS:一旦文件发生任何改变,就看作新文件,不能进行历史追踪。
(2) 企业:给文件一个ID ,只要ID 在,就认为是一个文件。
(3) Git:给文件一个相似度,如果小于阈值,就认为是新文件。
1.下载安装
2.配置个人信息
#配置用户名
git config --global user.name"vicya"
#配置邮箱
git config--global user.mail wangxiaoyuncu@gmail.com
#查看可以使用
git configuser.name
3.自定义行尾与颜色
由于不同操作系统行尾不一样所以需要设置
#windows
git config --global core.autocrlf true
#mac Linxu
git config --globalcore.autocrlf input
#设置颜色
git config–global color.ui auto
设置的级别:local > global > system
4.初始化Init
本地模式:
(1)将已做的工作纳入版本控制
直接在你的工作的目录下输入
git init
(2)新的工作
git init 项目名
云端模式:
可以通过github.com上的按钮,你可以选择public或者private,会生成readme和.gitignore(哪些文件不希望纳入版本控制)
5.commit
#查看当前更改
git status
#add暂存区,可以让你决定这次提交哪部分
git add 文件名
#提交,如果不添加描述信息,则会打开文本编辑器让你添加~
git commit-m “描述信息”
6.Diff
由于时间,你可能忘了你具体改了啥,所以需要Diff来帮你。
#走了一小会看改了啥 (当前文件不同于暂存区域)
git diff
#看看暂存区域与历史提交的区别
git diff –staged
#看看当前文件不同于历史提交
git diff HEAD
#更改显示颜色
git diff--color-words
#显示改了几行
git diff --stat
7.Log
#查看历史记录.(最早的在最下面)
git log
#过滤查看摘要
git log --oneline
#查看修改的文件
git log --stat
#查看改变内容
git log --patch
#得到图结构
git log --graph
git log --all --decorate--oneline
#查看某个文件的提交
git log --stat-- 文件名
8.remove
删除单个文件
#commit 之后会在未来的提交中消失。
git rm 文件名
#删除很多文件
git add -u .
#删除后作为不被跟踪的文件保留在目录树中
git rm --cached 文件名
9.move
在git中,移动文件和重命名是同一件事情。
git mv 源文件 目的文件
#如果你直接mv,忘记用git
git rm 源文件
git add 新文件
#批量记录移动
git add -A .
#在日志中追踪文件
git log --stat -M --follow -- 文件名
10.git ignore
提交时忽略不想要的文件
#添加ignore文件,并提交
touch .gitignore
ignore文件的内容:
#查看哪些被忽略了
git ls --files --others--ignore --exclude-standard
11.branch
添加新特性、修复bug都应在分支中进行。
#创建
git branch 分支名
#删除
git branch -d 分支名
#转换分支,当切换时,出来的任何工作目录都会跟着我们转过来
git checkout 分支名
#做一个更详细的提交
git checkout 唯一码
#撤销做的东西(丢弃修改)
git checkout -- 文件名
#创建新分支并切换
git checkout -b 分支名
12.merge
#工作分支合并
git checkoutmaster
git merge 分支名
#可能会遇到冲突,你可以用status查看,记住:《《《《HEAD之后的是当前分支内容,等号以后是你要合并进来的内容,然后》》》》是你要合并进来的分支的名字,然后自行编辑保存即可。
#忽略冲突
git merge --abort
#如果你只想看某一个分支内所有的提交
git merge--squash 分支名
#merge 之后清除分支
git branch -d 分支名
13.Remote
#放到远程哪里
git remote add originURL
#修改url
git remoteset-url origin URL
#删除远端
git remote rm 目的地名
#去github.com抓取任何信息,下载下来,放在远程追踪分支中
git fetch 目的地名
#先fetch,再与同名本地版本merge
git pull origin
#发送到远端
git push origin
14.可以通过markdown 来进行说明
15.forking
拷贝到自己目录下
16.Pull request
提交修改到另一个代码库中,可以当邮件系统用。。。。,拒绝或接受,给出自己的接受标准.
17 git reset
Checkout更关注在目录上,reset关注整个仓库
#Mixed:修改历史和工作目录(默认)
git reset HEAD 文件名
#Soft:选取一个或多个commit,将其改变放回暂存区(例如,最近五条)
git reset --softHEAD~5
#Hard:完全丢掉一些改动
git reset --hardHEAD~5
#回到某个特定时刻
git checkout 唯一码 文件名
18. reflog
追踪你对修改的修改,30天内
git reflog
19. rebase
将以前的一个提交放在现在的分支上
#标准用法:将你现在的所有修改,放到master当前工作之后,将会检查当前分支上所有的提交,然后在主分支上重做.
git checkout 特色分支
git rebase master