前言
用习惯简书之后大二很长的一段时间都没有碰git了,比较重要的安卓代码被我打成压缩包保存了几个版本,虽然说每次打包都是确保在手机上运行并且确保没有bug的前提下进行的,但之后绝逼不会再去解压以前的压缩包来看,这就失去了当初保存来为了日后回顾的意义。好吧,假期也过了大半才又开始学会这方面的知识,这回为了不像大一那样学了不用过久就忘所以还是做点笔记的好。
操作步骤
第一次操作的需要配置用户名(git config --global user.name "你的名字")和用户的邮箱(git config --global user.emil "你的邮箱")。
在本地创建的工程想要进行版本控制就在该项目的文件夹下面进行初始化操作(git init)
然后add然后commit巴拉巴拉
git clone
ls -al
git status
git add .
git commit -m ""
git pull
git push origin
基础操作
- 初始化仓库
git init
- 查看仓库的状态
git status
- 向缓存区添加文件
git add README.md #添加指定文件名的文件
git add . #一次性添加所有文件
- 保存仓库的历史记录
git commit -m "添加一句你想要说的话"
git commit #添加多行说明,第一行简述、第二行空格、第三行详细内容
git commit -am #也可以添加文件的同时提交历史纪录
git commit --amend #修改上一条提交的消息
- 查看提交日志
git log
git log --pretty=short #只显示第一行
git log README.md #只显示指定目录或文件
git log -p #显示文件的改动
git log --graph #以图标的方式查看分支
- 查看文件前后的区别
git diff
git diff HEAD #查看工作树和HEAD指向提交的差别
分支操作
- 查看、创建、删除分支
git branch
git branch -a #同时显示本都and远程的仓库信息
git branch 分支名 #创建分支
git branch -b 分支名 #删除分支
- 切换分支
对分支进行提交称为培育分支
git checkout 分支名
git checkout -b 分支名 #创建并切换分支
git checkout - #返回上一个分支
git checkout 文件名.后缀 #切换到最初的版本
- 合并分支
git merge 需合并的分支名 #将需要合并的分支合并到当前分支
git merge --no-ff 需合并的分支名 #在历史记录中明确记录本次分支合并需加上--no-ff
- 压缩历史
在合并分支之前如果发现有拼写错误,修改后又不想占用历史提交记录的可选择压缩
#选定当前分支中包含HEAD在内的两个最新的历史纪录将要删除记录的pick改为fixup
git rebase -i HEAD~2
#可以创建更线性的提交历史,就是可与把分支的工作合并到主分支上
#合并之后的分支在主分支的最顶端
#想要更新可以使用(git rebase 分支名)命令
git rebase master #讲当前分支合并到master分支
- 回溯历史版本
git reset --head 哈希值 #哈希值通过日志查出
git reset --hard HEAD~1
git revert 哈希值前几位
远程仓库
- 添加远程仓库,将本地项目与远程关联。
#将远程仓库的名称(git@github.com:用户名/项目名.git)设置为origin(标识符)
git remote add origin git@github.com:用户名/项目名.git
- 推送至远程仓库
-u在推送的同时将origin仓库的master分支设置为本地仓库当前分支的upstream(上游)
git push #将当前的分支提交上去
#第四个参数可写成 (本地仓库名:远程仓库名) 的形式,一致情况下写一个
git push 远程仓库名 分支名或者tag名 #(例:git push origin master)
git push -u origin 分支名 #推送至mster以外的分支
git push origin :远程分支名 #删除远程分支
- 从远程仓库获取
#自动将origin设置成该远程仓库的标识符
git clone git@github.com:用户名/项目名.git
git checkout -b 分支名 origin/分支名 #获取远程的分支
- 获取最新的远程仓库分支
git pull #因为你不知道你本地的代码是否是新的,所以push前最好先pull
- 忽略文件
创建项目时选中.gitignore模板,格式为
# 注释
* 忽略的文件
方便人类的操作
首先Git有一个叫做git config的工具,专门用来配置或读取相应的工作环境变量,这些变量存放在三个文件中。
/etc/gitconfig
面向系统中所有的用户,存放路径为Git的安装路径 ,不过我并没有找到。
命令调用前缀:git config --system~/.gitconfig
面向当前用户,存放路径为 c盘/用户/用户名/.gitconfig
命令调用前缀:git config --global项目当前目录下的.git/config
面向当前项目,存放路径.git/config
在含有相同配置信息的情况下优先级秒杀前两个(每一级别相同的配置会覆盖上一级别)
命令调用前缀:git config(比如某个项目中使用其他名字或者邮箱)配置代码
git config --global color.status #查看状态时高亮显示
git config --global color.branch #分支名高亮显示
git config --global color.ui auto #自动高亮
git config --global
- 命令的别名配置
git config --global alias.新名字 原始命令
#例:git config --global alias.st status
- 为正式版本打一个标签
git tag -a v1.0 -m "每个正式版最好都打一个标签"
git tag #查看当前项目的所有标签
git tag -d 标签名 #删除对应的标签
git tag show 标签名 #查看当前分支的具体信息
文件的基础操作
- 创建文件夹
mkdir 文件名
- 创建文件
touch 文件名.后缀
- 进入文件夹
cd 文件名