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

来源:互联网 发布:淘宝宝贝上下架查询 编辑:程序博客网 时间:2024/05/05 03:12

初始化一个空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 –stagedgit 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  //删除之前修改并且已放到暂存区域需要加-fgit 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     //本地目录,暂存区域都会被resetgit 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.0git 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     //删除远程仓库标签