git命令简洁版

一:添加提交

将未被跟踪的文件添加到暂存区,可以添加多个文件 用空格隔开

git add filename 

将暂存区里的内容提交到本地仓库

git commit -m "description" 

将暂存区以及被修改(尚未提交到暂存区)的内容都提交到本地仓库,但是不会提交未被跟踪的文件

git commit -a -m "description" 

如果没有添加-m 参数,那么会弹出vi编辑,在vi编辑中输入信息,如果输入信息为空,则会丢弃此次提交

git commit

这个引号不能省略!!!

git add '*.txt' 

删除未跟踪的文件
(1):查看可能会删除的文件

git clean -n

(2):删除未跟踪文件-f ,删除未跟踪文件以及文件夹-df

git clean -df

二:git日志

将提交信息也显示在log之后

git log --pretty=short
--pertty=oneline //精简日志

显示指定文件的提交信息

git log filename 

查看指定文件上次提交的变化

git log -p filename 

以图表形式查看合并提交树

git log --graph

三:git diff的特殊说明

git diff 分为两种情况:
1:当暂存区中没有文件时,比较当前工作区中的文件与上次提交到版本库中的文件
2:当暂存区有文件时,比较当前工作区中的文件与暂存区中的文件

下面的命令比较的是(工作区和暂存区)中的文件与版本库中的文件的区别

git diff HEAD 

git diff --cached 或者 git diff --staged 比较暂存区与版本库中的区别

四:切换分支

查看当前分支

git branch 

创建develop分支

git branch develop  

切换到develop分支

git checkout develop

创建并切换到develop分支

git checkout -b develop

将master分支合并到develop上

git merge --no-ff master

删除分支

git branch -d dev

命令行颜色设置为自动

git config --global color.ui auto  

五:暂存回退

如果文件没有添加到暂存区,使用该命令可以撤销当前版本所有修改,记住-- 和filename之间有空格

git checkout -- fileName

如果文件已经添加到暂存区了,那么需要先从暂存区回退。

git reset HEAD fileName 

从暂存区回退后,再次撤销修改。

git checkout -- fileName

六:远程仓库

将仓库repositoryName 设置为本地仓库的远程仓库,并且标志符设置为origin 。

git remote add origin git@github.com:username/repositoryName.git

当我们初始化远程仓库的时候,最好不要勾选initialize this repository with... .一旦勾选了,就失去了远程仓库和本地仓库的完整性

第一次推送某个分支的时候,这里是推送master分支,通过-u参数设置后,当我们之后要在这个分支上pull代码的时候,就可以直接pull了。

git push -u origin master  

可以查看本地所有分支,以及远程所有分支

git branch -a 

默认下载的是master分支

git clone git@github.com:xiaguangcheng/kaws.git 

从远端拉取xia_4.0分支代码,-b 后面的参数可以为其他名称,但是最后和远程同名

git checkout -b xia_4.0 origin/xia_4.0  

推送当前分支到远程

git push

拉取最新的xia_4.0代码

git pull origin xia_4.0 

“?”也就是shift+"/"这两个组合键,可以打开github网站的键盘快捷键页面

六:状态切换

引用自Git常用的撤销操作

  • 基本状态标识

    • A- = untracked 未跟踪
    • A = tracked 已跟踪未修改
    • A+ = modified - 已修改未暂存
    • B = staged - 已暂存未提交
    • C = committed - 已提交未PUSH
  • 各状态之间变化

    • A- -> B : git add <FILE>
    • B -> A- : git rm --cached <FILE>
    • B -> 删除不保留文件 : git rm -f <FILE>
    • A -> A- : git rm --cached <FILE>
    • A -> A+ : 修改文件
    • A+ -> A : git checkout -- <FILE>
    • A+ -> B : git add <FILE>
  • B -> A+ : git reset HEAD <FILE>

  • B -> C : git commit

  • C -> B : git reset --soft HEAD^
    修改最后一次提交:git commit --amend

七:子模块

如果在git中使用了子模块,那么我们通过git clone 了仓库中的代码,子模块就只有文件夹而没有内容。这个时候我们就需要

git submodule init
git submodule update

但是在执行update的过程中,经常会出现零进度,或者出现

fatal: Needed a single revision
Unable to find current revision in submodule path 'ffmpeg'

这个时候我们可以

rm -rf ffmpeg   // ffmpeg子模块
rm -rf x264  //x264子模块
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 13,737评论 9 163
  • Git是目前最流行的版本管理系统,也是最先进的分布式版本控制系统(distributed version cont...
    pro648阅读 5,792评论 1 17
  • 以下内容是我在学习和研究Git时,对Git操作的特性、重点和注意事项的提取、精练和总结,可以做为Git操作的字典,...
    科研者阅读 4,252评论 4 50
  • 阳光暖暖的午后 三两伙伴相约散步 偶遇俩孩童 手握线 线系塑料袋 逆风奔跑 孩童欢笑 袋里装风 心里装梦 虽简单 ...
    Yu真实同行阅读 144评论 2 0
  • 时间或许是世界上最公平的资源,因为对每个人来说,每天都是24小时,没有特殊对待。但是我们对它的态度却值得深思,常常...
    环盈阅读 366评论 0 1