git常用指令

来源:互联网 发布:win10安装ubuntu共存 编辑:程序博客网 时间:2024/06/05 16:24

git help :git指令帮助手册
查看其他指令的做法:git help 其他指令

git config :git的配置信息相关(修改的是.git/config文件)
配置用户名:git config “user.name” 用户名(用于跟踪修改记录)
配置邮箱:git config “user.email” 邮箱(用于多人开发间的沟通)
查看配置信息:git config –l
编辑配置信息:git config –e(用vim编辑,:wq是退出vim编辑器)
设置指令的别名:git config alias.别名 原指令名称
设置带参数指令的别名:git config alias.别名 “原指令名称 参数”
将此设置应用到整个系统中:git config ––gloabal

git常用指令
git status :查文件的状态
查看某个文件的状态:git status 文件名
查看当前路径所有文件的状态:git status

git log :查看文件的修改日志
查看某个文件的修改日志:git log 文件名
查看当前路径所有文件的修改日志:git log
用一行的方式查看简单的日志信息:git log ––pretty=oneline
查看最近的N次修改:git log –N(N是一个整数)

git diff :查看文件最新改动的地方
查看某个文件的最新改动的地方:git diff 文件名
查看当前路径所有文件最新改动的地方:git diff

git常用指令
git init :初始化一个空的本地仓库,生成一个.git目录,用于维护版本信息
在当前路径初始化仓库:git init
在其他路径初始化仓库:git init 仓库路径
git add :将工作区的文件保存到暂缓区
保存某个文件到暂缓区:git add 文件名
保存当前路径的所有文件到暂缓区:git add .(注意,最后是一个点 . )

git commit :将暂缓区的文件提交到当前分支
提交某个文件到分支:git commit -m ”注释” 文件名
保存当前路径的所有文件到分支:git commit -m ”注释”
git reset :版本回退(建议加上––hard参数,git支持无限次后悔)
回退到上一个版本:git reset ––hard HEAD^
回退到上上一个版本:git reset ––hard HEAD^^
回退到上N个版本:git reset ––hard HEAD~N(N是一个整数)
回退到任意一个版本:git reset ––hard 版本号(版本号用7位即可)
git reflog :查看分支引用记录(能够查看所有的版本号)
git rm:删除文件(删完之后要进行commit操作,才能同步到版本库)
git clone:下载远程仓库到本地
下载远程仓库到当前路径:git clone 仓库的URL
下载远程仓库到特定路径:git clone 仓库的URL 存放仓库的路径
git pull:下载远程仓库的最新信息到本地仓库
git push:将本地的仓库信息推送到远程仓库
工作原理
如果想了解git的工作原理,有几个核心概念必须知道
工作区(Working Directory):仓库文件夹里除.git目录以外的内容
版本库(Repository):.git目录,用于存储记录版本信息
暂缓区(stage)
分支(master):git自动创建的第一个分支
HEAD指针:用于指向当前分支
git add和git commit的原理
git add :把文件修改添加到暂存区
git commit :把暂存区的所有内容提交到当前分支
git 和 svn的简单对比
速度
在很多情况下,git的速度远远比SVN快
结构
SVN是集中式管理,git是分布式管理
其他
SVN使用分支比较笨拙,git可以轻松拥有无限个分支
SVN必须联网才能正常工作,git支持本地版本控制工作
旧版本的SVN会在每一个目录置放一个.svn,git只会在根目录拥有一个.git
SVN工作流程和GIT工作流程对比
svn checkout —— git clone
svn 只下载代码,git 会连同代码仓库一起下载下来
svn commit —— git commit
svn 是提交到服务器,git 中是提交到本地仓库,需要使用push才能提交到服务器
svn update - git pull
都是从服务器下载最新被修改的代码
分布式和集中式最大的区别在于:在分布式下,本地有个代码仓库,开发者可以在本地提交; 而集中式版本控制, 只有在服务器才有一个代码仓库, 只能在服务器进行统一管理
git工作原理
1.概念理解
工作区
与.git文件夹同级的其他文件夹或者子文件夹
版本控制库
暂缓区
分支(Git不像SVN那样有主干和分支的概念. 仅仅存在分支,其中master分支为默认被创建的分支,类似于SVN中的主干)
切换分支:通过控制HEAD指针指向不同的分支,就可以切换*
操作原则: 所有新添加/删除/修改的文件 必须先添加到暂缓区,然后才能提交到HEAD指向的当前分支中
git使用环境
1.单人开发只需要一个本地库
原因:不需要与他人共享代码,只负责管理自己代码即可;例如提交代码,删除代码,版本控制等等

2.多人开发时需要一个共享版本库
共享版本库的形式:
本地共享库:文件夹/U盘/硬盘
远程共享库:自己搭建git服务器/ 托管到第三方平台(例如github, oschina)

3.客户端使用环境 无论是单人开发还是多人开发,客户端都可以使用命令行或者图形界面使用git

SourceTree
- 下载地址:http://www.sourcetreeapp.com/download/
GitHub
- 下载地址:https://mac.github.com
- 不过它是专门为GitHub网站而设计的
Xcode
- 虽然集成较好,但是只能做一些常用的简单操作,复杂操作还要使用命令行
学习网站
http://backlogtool.com/git-guide/cn/intro/intro1_1.html

二. 掌握 - Git命令行演练-个人开发
如何学习git指令
git help [子命令]
和学习SVN指令是一样的,只不过git是通过使用指南的形式展示给用户看(不能编辑的vim编辑器),使用q退出vim编辑器,按空格进入下一页,ctrl + B 回到上一页; /关键字 进行搜索

初始化一个本地仓库
原因: 管理本地代码,修改上传,版本回退
命令: git init

配置仓库
告诉git你是谁?(方便以后管理自己的代码)
原因: 追踪修改记录
命令: git config user.name “Edison”

告诉git怎样联系你?
原因: 多人合作开发时, 沟通交流
命令: git config user.email “shunzi@qq.com”

查看配置信息(.git -> config打开)
命令: git config -l
全局的配置:git config –global user.name edison
git config –global user.email 350106106@qq.com
个人开发演练

创建文件并提交
命令:
touch main.c
git add .
git commit -m “注释”
修改文件并提交
命令:
git add .
git commit -m “注释”
删除文件并提交
命令:
git rm person.h
git commit -m “注释”
日志查看
命令:
git log
git reflog
版本回退
命令:
git reset —-hard HEAD 重置到当前版本
git reset —-hard HEAD^^ 重置到上上个版本
git reset ——hard HEAD~2 重置到往上2个版本
git reset —-hard 七位版本号 重置到指定版本::

备注补充
1.文件状态(git status)
颜色含义
红色: 代表被添加或者修改的文件没有被添加到暂缓区
绿色: 代表文件在暂缓区,等待提交
版本号的含义
版本号是一个由SHA1生成的40位哈希值
这样做的目的是保证版本号的唯一

2.vim编辑器的使用:
命令模式:等待编辑命令输入;所有输入的内容都被当做命令来执行
插入模式:输入的所有内容都被显示,并被当做文件内容处理
命令行模式:执行待定命令(保存文件并退出vim : wq ; 强制退出不保存: q! )

八. 了解 - Git版本备份/分支管理
在git中不是通过拷贝代码来解决备份和开启分支的 git 直接打标签, 通过控制head指向,来回到任一版本
1.版本备份
1.建立共享库
创建文件夹shareWeibo
进入文件夹后,初始化共享库
git init ——bare

2.经理克隆项目后开发完1.0版本,打标签后,上传共享库
创建manager文件夹
进入文件夹后
git clone 共享库绝对路径
进入工作区,配置姓名,邮箱
git config user.name “manager”
git config user.email “manager@qq.com”
经理创建文件,并修改部分代码,提交代码,上传到共享库,完成v1.0版本
touch main.c
open main.c:: 打开后写入abc
git add .
git commit -m “完成1.0版本开发”
git push
经理给此版本打标签,并将标签上传到共享库
git tag -a v1.0 -m “标记1.0版本”
git push origin v1.0
经理继续开发2.0版本……并提交
git add .
git commit -m “2.0部分功能”
git push
已发布版本bug修复
在以上步骤基础上做以下操作
1.牛大克隆项目,根据1.0版本创建分支,修复bug
创建niuda文件夹
进入文件夹后
git clone 共享库绝对路径
进入工作区,配置姓名,邮箱
git config user.name “niuda”
git config user.email “niuda@qq.com”
根据v1.0版本建立新分支v1.0fixbug并切换到此分支
git checkout v1.0 -b v1.0fixbug::
修复bug后提交到本地版本库
注意此处提交到的是HEAD指向的分支-v1.0fixbug
git add .
git commit -m “修复bug”

2.牛大修复bug后,打标签v1.1作版本备份,并上传共享库
git tag -a v1.1 -m “1.1版本备份”
git push origin v1.1

3.牛大上传整个分支到共享版本库
git push origin v1.0fixbug

———至此,分支修复bug结束,下面经理要合并分支———
1.经理从共享库更新代码到本地库
git pull

2.经理查看当前服务器都有哪些分支
git branch -r

3.经理切换到master分支后,将v1.0fixbug分支合并过来
git checkout master
git merge origin/v1.0fixbug -m “合并分支”

4.经理合并完成后提交到共享库
git add .
git commit -m “合并分支”
git push

5.合并完成后,可以删除共享库的分支
git branch -r -d origin/v1.0fixbug

原创粉丝点击