git 版本控制系统
目标:完全搞懂git分布式版本控制系统
搭建git版本控制系统
cvs集中化版本控制系统--集中式管理的服务器
git分布式版本控制系统--会将原始代码仓库镜像下来

新项目使用git管理,初始化
git init
从现有仓库克隆
git clone url filename

已跟踪
未更新、未修改
已修改
已放入暂存区

未跟踪

检查当前文件状态
git status

跟踪新文件,暂存已修改文件
git add filename

忽略某些文件
创建.gitignore 文件

查看尚未暂存文件更新内容
git diff

查看已经暂存和上次提交时的快照之间差异
git diff --cached
高版本可使用 git diff --staged

提交暂存区的更新
git commit
-m 后添加提交说明

跳过暂存区直接提交快照
git commit -a -m

移除跟踪文件
git rm filename
删除之前已经存入暂存区的,需加参数-f 强制删除

移除跟踪文件但不删除文件(稍后在.gitignore文件中补上)
git rm --cached filename

移动文件/修改文件
git mv file_form file_to

查看提交历史
git log
-p 展开每次提交差异 -2 则是最近两次提交内容
--pretty 制定不同格式展示历史内容(参数oneline、short、full、fuller)

使用图形化工具查看提交历史
gitk 软件

修改最后一次提交
git commit --amend

取消已经暂存的文件
git reset HEAD file

取消对已经暂存的文件的修改
git checkout -- file

查看当前的远程库(默认origin未远程库名)
git remote (-v 显示对应的克隆地址)

添加远程仓库
git remote add [shortname] [url]

从远程仓库拉取数据
git fetch [remote-name]
git clone 就是自动创建本地仓库master分支跟踪远程仓库master分支

推送数据到远程仓库
git push [remote-name] [branch-name]

查看远程仓库信息
git remote show [remote-name]

远程仓库重命名和删除
git remote rename name_from name_to
git remote rm [remote-name]

列出已有的标签
git tag

新建含附注的标签
git tag -a v1.1 -m '说明'
查看相应标签版本信息
git show v1.1

新建轻量级标签
git tag v1.1

签署标签
git tag -s v1.1 -m '说明'

验证标签
git tag -v [tag-name]

后续加注标签
git tag -a v1.1 校验字符

分享标签到远程仓库
git push origin [tagname]
git push origin --tags(分享所有标签到远程库)

git命名别名
git config --global alias.st status

git分支
使用分支将你的工作从主线上分离开

创建分支
git branch [branch-name]

切换分支
git checkout [branch-name]

创建分支并切换分支
git branch -b [branch-name]

合并分支
git merge [branch-name]

列出所有分支
git branch

查看各个分支最后一次提交信息
git branch -v

查看哪些分支已经被合并入当前分支
git branch --merge

查看尚未合并的分支
git branch --no-merge

删除分支(删除尚未合并分支会报错)
git branch -d [branch-name]
git branch -D [branch-name] (强制执行)

向远程仓库推送数据
git push origin [branch-name]

分支式工作流程
master
develop
topic

服务器上的git

GIT主要通过本地协议、git协议、SSH协议、http协议传输数据
除HTTP协议外,其他都需要在服务器端安装并运行GIT

配置git
git config --global user.name 'name'
git config --global user.email 'email'

git中颜色配置
git config --global color.ui true/false
git config --global color.diff.meta 'color-name'

编辑器中的格式化与空白
Git可以在你提交时自动地把行结束符CRLF转换成LF,而在签出代码时把LF转换成CRLF
git config --global core.autocrlf true
core.autocrlf设置成input来告诉 Git 在提交时把CRLF转换成LF,签出时不转换
git config --global core.autocrlf input
window 服务器不需要转换
git config --global core.autocrlf false

最新文章

  1. [Android]Android开发入门之HelloWorld
  2. SQL 对时间的处理
  3. [读书笔记] CSS权威指南1: 选择器
  4. single单例模式
  5. 基于FPGA的电压表与串口通信(上)
  6. 利用HTML 5中的Menu和Menuitem元素快速创建菜单
  7. MVC神韵---你想在哪解脱!(十五)
  8. C#_判断2个对象的值是否相等
  9. windows XP 安装pip
  10. [SCOI2010] 连续攻击问题
  11. C/JS_实现冒泡排序
  12. TestLink测试管理工具的使用说明
  13. C# 利用反射完成计算器可扩展功能
  14. Linux下安装oracle的过程
  15. selenium之下载
  16. C#/ASP.NET应用程序配置文件app.config/web.config的增、删、改操作,无法为请求的 Configuration 对象创建配置文件。
  17. caffe在win10下的安装与配置
  18. 对一个结果集(List)进行手动分页
  19. 关于C++类型检查的一点小挫折
  20. 关于python中的tkinter模块

热门文章

  1. 人性化的HTTP命令行工具——HTTPie
  2. ISO/IEC 9899:2011 条款6.9.1——函数定义
  3. Cocoa Framework中GB2312与UTF16编码之间的相互转换
  4. Python 相对导入attempted relative import beyond top-level package
  5. Spring cloud微服务安全实战-6-9sentinel之熔断降级
  6. C++接口的概念
  7. Qt编写自定义控件66-光晕时钟
  8. 改进初学者的PID-介绍
  9. 06点睛Spring MVC 4.1-文件上传
  10. 【CUDA开发】CUDA开发琐碎知识