[笔记分享] [Git] progit学习笔记之基础

本文提供了Git的基本操作指南,涵盖初始化、克隆、文件状态查看、文件跟踪与添加、忽略文件设置、文件差异查看、提交文件、删除文件、查看提交历史、修改提交、取消文件修改与暂存、远程仓库管理、标签管理等核心功能。

初始化一个空git:

git init

从已有仓库clone一个:

git clone git://10.85.21.71/vm/test.git kris_test   //指定clone到本地kris_test目录

查看文件状态:

git status

Note: 当只修改文件权限时,git只关注执行bit,其他bit改变之后git status不会受影响。

跟踪或者添加文件:

git add test    //只添加test文件
git add .       //添加已修改文件和新文件
git add –A  //添加所有文件,包括被删除的文件
git add –u  //添加已修改和被删除文件

添加忽略文件: //自己生成文件等

创建.gitignore, 往此文件添加内容即可,可以是相对路径,可是匹配格式,格式规范如下:

1. 空行和#开头的行被git忽略。
2. glob模式匹配(正则表达式简化版本),有*,[abc],?,[0-9]。
3. 以/结尾的表明要忽略整个目录。
4. 忽略指定模式以外的文件或目录,可以在模式前加上!取反。

Note: 想要忽略文件,此文件必须不能在git仓库中。

查看文件差异:

git diff    //查看已修改文件的差异, 比较已修改和暂存区文件
git diff –cached //查看暂存区和git目录的差异,也可以用git diff –staged
git diff test.file  //查看某个文件的差异

提交文件: //git add/rm之后才会被提交

git commit 
git commit –a       //相当于git add + git commit

删除文件:

git rm file //git rm没有 git rm . 
git rm –f file  //删除之前修改并且已放到暂存区域需要加-f
git rm –cached file //只删除git仓库文件,本地保存,例如日志文件。
git rm  dir/\*.log  //递归删除dir下的*.log文件,\是git自己的语法,表示要递归,
有\则只删除当前目录。

查看提交历史:

git log 
git log –p -2   //-p显示每次提交内容差异,-2显示最近两次更新。
git log –stat   //仅显示简要的增该行数统计
git log –pretty=oneline //只在一行显示commit信息,pretty后面可以跟online,format, short, full等。
git log –pretty=format:”%h - %an:%s”    //提交简短哈希串,作者,提交说明。
git log –since=2.weeks   //显示最近两周提交
git log –author=Kris    //只显示作者Kris的提交
git log file    //只显示某个文件或者目录的提交信息

修改最后一次提交:

git commit –amend       //在当前的commit上提交,也就是同一个commit id。执行后后面的提交改动会覆盖上一次的。

Note: 在操作次命令前先运行git add/rm将文件加到暂存区域才有意义。

取消已修改的文件:

git checkout file   //file会被还原成未修改状态

取消已暂存的文件:

git reset –hard     //本地目录,暂存区域都会被reset
git reset –soft     //最后一笔改动会到暂存区, 本地和暂存区域原有部分不变化
git reset –mixed    //默认模式,暂存区域会被改变,本地目录不做变化
git reset –hard HEAD^   //上一次提交,也可以写成HEAD~1。
git reset –hard HEAD^^  //上上一次提交,可以写成HEAD~2.

查看远程仓库:

git remote –v

添加远程仓库:

git remote add qcs_mirror git://10.85.21.71/x6_vm/non_hlos.git      //将远程non_hlos git仓库添加到本地,名字为qcs_mirror, 后面操作qcs_mirror就等同于操作远程non_hlos git。

从远程仓库抓数据:

git fetch qcs_mirror    //会将远程仓库数据抓到本地,但是并不做merge

抓取数据并合并:

git pull        //相当于git fetch + git merge, 抓取的是当前分支对应远程仓库数据并和本地的代码合并。

推送数据到远程仓库:

git push origin master  //本地master分支的code推送到远程origin仓库中。Git clone时默认使用master作为远程仓库对应本地的名字。

查看远程仓库信息:

git remote show origin 

重命名远程仓库名字:

git remote rename qcs_mirror qth_mirror //将远程仓库对应本地的名字从qcs_mirror改成qth_mirror。

删除远程仓库:

git remote rm qcs_mirror    //只是删除远程仓库和本地的连接,并不是真删除了远程仓库的东西了。

列出所有标签:

git tag 

列出某部分标签:

git tag –l ‘v1.0.*’

新建标签:

git tag v1.0    //标签名字是v1.0
git tag –a v1.1 –m “version 1.1”    //其实是多加了一个commit,一般没必要用这个。

查看标签:

git show v1.0       //标签是就commit打的,所以看到的commit是基于当时打tag的时间点。

后期添加标签:

git add –a v1.1 commit_id   //在提交时忘记打标签,也可以后期基于某个commit id补上。

推送标签:

git push origin v1.1    //推送v1.1这个标签到origin 仓库
git push origin –tags   //推送所有本地新增标签到origin仓库

删除标签:

git tag –d v1.1     //删除本地标签
git push origin :refs/tags/v1.1     //删除远程仓库标签
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值