Git是一款非常优秀的版本控制系统,适用范围也越来越广泛,之前学习的时候看过廖雪峰的教程。今天又看了下git pro,这个也不错http://git-scm.com/book/zh/v2,这里简单总结下git的使用方法,

git将文件分为工作区文件,暂存区文件和版本库文件

工作区:我们平时操作的文件

暂存区:提交的文件

版本库:本地仓库文件

我们在工作区工作,将文件提交的暂存区,最后一块commit到本地仓库。

一、安装

linux下,可以直接命令行安装或者编译安装,这里只写命令行安装:

$ yum install git-core
或者
$ apt-get install git

Mac(git)系统和Win(git)都有图形安装界面,不再介绍;

二、配置

生成密钥:$ ssh-keygen -t rsa -C "example@example.com"这两个配置是一定要的:
$ git config --global user.name "username"
$ git config --global user.email "xxx@xx"
还有其他比较好玩的配置:
$ git config --global merge.tool vimdiff
$ git config --global core.editor emacs    等等吧
可以查看配置:
$ git config --list
$ git config user.name
获取帮助:
$ git help
$ git help config

三、仓库

第一种方法:初始化仓库
$ git init
添加文件
$ git add xx.file
提交文件
$ git commit -m "some comment"$ git commit -a -m "这样会直接跨过暂存区提交到本地仓库"第二种方法:克隆仓库$ git clone git://github.com/username/project.git (rename)如果有括号里的参数,新的版本库就会是那个名字,不然就是project名字;

在接下来的过程中可以通过不断地add和commit将文件添加到本地仓库,下面这条命令用来监控仓库状态$ git status (-v)

四、忽略文件

只要在版本库中添加一个.gitignore文件即可手动配置版本库中要忽略的文件,然后git就会像看不到这些文件一样,可以这样写内容:

    # 此为注释 – 将被 Git 忽略# 忽略所有 .a 结尾的文件*.a# 但 lib.a 除外!lib.a# 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO/TODO# 忽略 build/ 目录下的所有文件build/# 会忽略 doc/notes.txt 但不包括 doc/server/arch.txtdoc/*.txt

五、比较差异

比较工作区和暂存区的差别
$ git diff
比较工作区和上次提交版本的差别
$ git diff --cached
$ git diff --staged

六、删除文件

不能只是通过操作系统将文件删除,还要通过git命令删除,这样git才能知道文件被删除了:
从本地仓库移除跟踪,但是仍然在工作区工作(用来解决不小心将一些不必要的文件添加到本地仓库):
$ git rm --cached readme.txt
移除log文件夹下的所有.log文件:
$ git rm log/\*.log

七、移动文件

$ git mv from to
重命名:
$ git mv  readme.txt readme
$ git rm readme.txt
$ git add readme

八、查看提交的历史

参数可以后很多,不赘述:
$ git log (--pretty=oneline)

九、撤销操作

撤销这次提交:
$ git commit --amend
这样只会提交一次:
$ git commit -m "initial commit"
$ git add forgotten_file
$ git commit --amend

撤销暂存区文件:$ git reset HEAD readme.txt

撤销修改:$ git checkout -- readme.txt

十、远程仓库的使用

查看远程仓库:
$ git remote [-v]
$ git remote show [name]
添加远程仓库:
$ git remote add pbName git://github.com/userName/project.git
从远程仓库抓去信息:
$ git fetch pbName向远程仓库推送:
$ git push [-u] origin master (新建立的链接第一次推送要添加-u参数远程仓库的删除和重命名:
$ git remote rename pbName anotherName
$ git remote rm pbName

远程仓库主要都是使用Github网站,新建项目的时候要添加密钥,生成密钥:$ ssh-keygen -t ras -C "someone@gmail.com"

十一、标签

查看标签:
$ git tag [-l]$ git show v1.4新建标签:$ git tag -a v1.4 -m "myVersion 1.4"推送标签:$ git push origin --tags$ git push origin v1.4

标签还有很多的参数,也不意义说清楚了!

十二、小技巧

1、Windows的msysGit配置好了自动补全的脚本,linux还需要最自己配置,具体配置可以看git pro。

2、可以通过给命令配置别名提高使用效率,也不多说!

转载于:https://www.cnblogs.com/kiscall/p/4699279.html

GIT 牛刀小试 (第一发)相关推荐

  1. 如何编写一个全新的 Git 协议

    曾几何时,我在持续追踪自己的文件方面遇到一些问题.通常,我忘了自己是否将文件保存在自己的桌面电脑.笔记本电脑或者电话上,或者保存在了云上的什么地方.更有甚者,对非常重要的信息,像密码和Bitcoin的 ...

  2. 从命令行到IDE,版本管理工具Git详解(远程仓库创建+命令行讲解+IDEA集成使用)

    首先,Git已经并不只是GitHub,而是所有基于Git的平台,只要在你的电脑上面下载了Git,你就可以通过Git去管理"基于Git的平台"上的代码,常用的平台有GitHub.Gi ...

  3. 【阶段小结】协同开发——这学期的Git使用小结

    [阶段小结]协同开发--这学期的Git使用小结 一.Git简介 1. Git简单介绍 2. Git工作流程以及各个区域 3. Git文件状态变化 二.Git安装&Git基本配置 三.个人踩坑 ...

  4. Github配置(git+vscode+python+jupyter)

    ①下载git 打开 git bash 工具的用户名和密码存储 $ git config --global user.name "Your Name" $ git config -- ...

  5. git shanchu stash_git stash用法

    常用git stash命令: (1)git stash save "save message"  : 执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不 ...

  6. 项目中使用 Git 高频场景

    1. 拉取最新主干代码,进行功能迭代或 bug 修复 首先切换到主干: git checkout master 然后拉取最新代码: git pull 基于 master 创建本地分支 xxx: git ...

  7. Git 错误提交后该如何回滚操作

    1. Git 架构 Workspace:工作区(当前用户操作修改的区域) Index / Stage:暂存区 (add 后的区域) Repository:仓库区或本地仓库(commit 后的区域) R ...

  8. Git 最全命令总结都在这里了

    1. 基本命令 git diff 不加参数直接输入 git diff : 尚未暂存的文件更新了哪些部分 git diff --staged : 已暂存文件与最后一次提交的文件差异 git diff - ...

  9. 手把手教你搭建 Git 服务器

    https://gitbook.cn/books/5e81adf58d6af944d1f26356/index.html 1. 服务器端安装 Git 切换至 root 账户: su root 看一下服 ...

最新文章

  1. 职业操盘手内部教材 z
  2. win32 debug api 原理
  3. 统计ES性能的python脚本
  4. webpack打包后的文件
  5. python里的append怎么用_python中append实例用法总结
  6. c语言 读取一个文件 删除注释,C/C++ 源文件删除注释代码
  7. CF1245D Shichikuji and Power Grid
  8. sdn框架的计算机网络管理,清华SDN实践--SDN 系统架构与数据中心应用
  9. jquery 获取键值对中最大值_jQuery的AJAX发送数据键值对
  10. [面试]排列组合与概率计算(一)
  11. 基于Cookie跨域的单点登录问题
  12. D3D处理2D图像: NV12格式及其转换(1)
  13. Conda 下 安装 Allennlp
  14. cef调用本地html,在CefSharp中使用本地构建的网页(Working with locally built web page in CefSharp)...
  15. 《人类简史》笔记——认知革命和农业革命背后的思考
  16. 处女作《Web全栈开发进阶之路》出版了!
  17. mysql数据库备份机制_mysql备份机制有哪些
  18. 常用三角公式、变形及图形
  19. 高中数学竞赛与自主招生内部练习试题<二>
  20. 【雷达信号处理】脉冲多普勒PD及其MATLAB实现

热门文章

  1. expect批量执行命令
  2. Kubernetes的yaml文件中的command使用
  3. 进制转换问题---例如把26进制转为10进制
  4. tensorflow实现宝可梦数据集迁移学习
  5. maven中pom文件解析
  6. 从基础到高级讲解Kafka
  7. @Transactional 注解的失效场景
  8. 构建并用 TensorFlow Serving 部署 Wide Deep 模型
  9. nginx优化-nginx事件处理模型优化use epoll;
  10. ExecutorCompletionService分析及使用