一、git在平时使用中常见的命令
这个是我在看完一篇文章或者说是一本小书后,防止自己忘记,加深一下印象写下的,自己之前也一直在用git管理项目代码,一般托管到codingnet上面,或者有时候托管到github,废话少说 ,开始命令!
配置命令
一般每个用户都需要配置自己的用户名和邮箱,这样提交代码的时候才知道是谁提交了。
- $git config –global user.name “your name” 配置你的名称
- $git config –global user.email “youremail@qq.com” 配置你的邮箱
初始化本地仓库
通过 命令进入到自己新建的目录 执行:
$git init //初始化本地仓库
完成后,你会发现你的,目录下面会多一个.git文件,这个文件不能动他,他里面保存这个git仓库的重要信息,他叫版本库。
在这里顺便说一下,git是分布式版本控制系统,相比之下我们以前用的svn是集中式版本管理系统,集中式版本管理系统,代码版本的管理都是在一个远程的中央服务器中,必须联网才可以工作,本地是不支持代码版本的管理的 ,而分布式版本控制系统,根本没有“中央服务器 ”,每一个本地仓库都是一个完整的版本控制服务器,本地记录的所有人的对代码的修改操作,所以相对于集中式的管理系统svn而言,git的安全性要高很多,因为每个本地仓库都记录的完整的版本控制,及时有其他的本地仓库宕机,也没有关系,随便找一个人拷一份就OK了,除此之外,git还有强大的分支管理,在后面会讲到。
提交代码
比如我现在的git仓库里面添加一个 a.txt文件,现在要提交修改(添加删除修改文件内容,都属于版本库的修改)
$git add a.txt 提交到暂存区
$git commit -m “提交了a.txt” //提交到版本库
查看版本库状态
可以告诉你哪些文件被修改了,
$git status
查看版本库中a.txt的变化
$git diff a.txt
查看a.txt文件一共有几个版本提交到git仓库中了
$git log
简介的查看a.txt文件一共有几个版本提交到git仓库中了
$git log –preptty=oneline
如果错误的提交了a.txt的修改可以使用
$git reset –hard HEAD^ 退回上一个版本
$git reset –hard HEAD^^ 退回上上一个版本
$git reset –hard HEAD^^^退回上上上一个版本
$git reset –hard HEAD~100退回上100一个版本
其实我们有一种更好的方法,退回到想要的版本:
先通过 $git log 查询到要退回版本的commitid,
然后 用
$git reset –hard commitid
可以通过reflog查询以前的操作命令记录
$git reflog
工作区 、暂存区、版本库
工作区就是你当前的目录下
暂存区是 你代码修改提交到版本库的一个中间区域,相当于add操作后,版本的修改是提交到暂存区的,当commit后才会将修改 提交版本库。
撤销修改
$git checkout a.txt
这里是要分两种情况的,第一种是代码还没有add,即还没有提交到暂存区,此时,撤销的修改后就回到和版本库一样的状态。
第二种是一件add修改到暂存区了,那此时的撤销就是返回到提交到暂存区前一时刻的状态。
如果此时的修改已经commit了,即提交到版本库了,那此时的撤销则必须用 reset命令了:
$git reset HEAD a.txt 返回到最前的一个版本库(同时已经撤销了暂存区中的修改)
删除文件与恢复
删除文件
$git rm a.txt
$git commit -m “remove a.txt”
如果想恢复删除的文件
$git checkout – a.txt
分支管理
分支管理在版本控制中很重要,尤其是你接到一个新的功能开发的任务时,为了不影响现在的master分支的代码,最好是创建一个分支,等新功能开发完毕后,再合并merge到master分支上。
创建分支
$git checkout -b dev
上面的代码代表两步 1、创建分支dev 2、切换到分支dev
$git branch dev 创建分支
$git checkout dev 切换分支
查看分支
$git branch
合并分支
$git merge dev 在当前分支上合并dev分支
删除分支
$git branch -d branchname
由于今天精力有限,先写到这。后面会继续写:
如何处理合并中的冲突解决
如何在处理不同类型或者说不同情况下的分支
如何在git下 多人协作开发
如何抓取分支