1、git命令参数

usage: git [--version] [--help] [-c name=value]
[--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p|--paginate|--no-pager] [--no-replace-objects] [--bare]
[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
<command> [<args>] 最常用的 git 命令有:
add 添加文件内容至索引
bisect 通过二分查找定位引入 bug 的变更
branch 列出、创建或删除分支
checkout 检出一个分支或路径到工作区
clone 克隆一个版本库到一个新目录
commit 记录变更到版本库
diff 显示提交之间、提交和工作区之间等的差异
fetch 从另外一个版本库下载对象和引用
grep 输出和模式匹配的行
init 创建一个空的 Git 版本库或重新初始化一个已存在的版本库
log 显示提交日志
merge 合并两个或更多开发历史
mv 移动或重命名一个文件、目录或符号链接
pull 获取并合并另外的版本库或一个本地分支
push 更新远程引用和相关的对象
rebase 本地提交转移至更新后的上游分支中
reset 重置当前HEAD到指定状态
rm 从工作区和索引中删除文件
show 显示各种类型的对象
status 显示工作区状态
tag 创建、列出、删除或校验一个GPG签名的 tag 对象 命令 'git help -a' 和 'git help -g' 显示可用的子命令和一些指南。参见
'git help <命令>' 或 'git help <指南>' 来查看给定的子命令帮助或指南

2、git使用方法

git中的结构组成包括:
工作区(working directory),它就是我们工作的目录区域
版本库(Repository),由版本控制创建的.git文件目录
git仓库中最重要的是index缓存区,在使用git add时它实际上是将文件改动添加到了仓库缓存区中,另一个文件为master它是git自动创建的唯一一个master分支,在使用git commit提交时实际上时将改动提交了主分支上master,还有一个HEAD指针,它直接指向master中的最新版本,版本切换就是调用了HEAD指针指向要切换的版本

(1)创建版本库
#配置个人信息
git config --global user.name "username"
git config --global user.email "youremail@163.com"

#创建版本库
mkdir learngit
cd learngit
git init

(2)提交到仓库
git add test.py #将文件提交到索引index
-n #只显示文件不添加文件
-v #显示详细
-f #强制添加被忽略的文件
-i #在树结构中添加修改文件内容
git commit -m 'add test' #提交到仓库

(3)查看工作区状态
git status
#查看修改的内容
git diff test.py
git diff HEAD -- test.py

#查看提交历史
git log
git log --pretty=oneline #简短输出信息
git log --graph --pretty=oneline --abbrev-commit #查看分支合并情况

#退回到上一个版本
git reset --hard HEAD^

#前进到下一个版本
git reflog #查看历史命令,找到commit_id
git reset --hard 3b13954 #通过ID前进到下一个版本

#撤销修改
#当文件只是在工作区修改了,要撤销修改使用一下命令
git checkout -- test.py
#当文件修改提交到缓存区后,想要撤销修改需要先从缓存区丢弃修改然后再在工作区撤销即可
git reset HEAD test.py
git checkout -- test.py
#当文件修改被提交到版本库后,想要撤销修改就需要使用版本回退了
git reset --hard HEAD^

#删除文件
#如果文件被删除了需要在版本中将文件删除
rm test.txt
git rm test.txt
git commit -m 'remove test.txt'
#如果文件是被误删的,可以使用以下命令恢复或者退回到上一个版本
git checkout -- text.txt #如果文件还在版本库中使用此命令
git reset --hard HEAD^ #如果文件被彻底删除了可以回退到上要给版本

(4)远程仓库
#1.要添加到远程仓库首先需要注册一个github账号
#2.在本地创建SSH key执行以下命令,一路回车即可,它会在用户目录下生成一个.ssh文件夹,里面创建了两个文件id_rsa为私钥文件自己使用的,一个是id_rsa.pub为公钥文件,需要上传到github网站上
ssh-keygen.exe -t rsa -C "920664709@163.com"
#3.登陆github账号,选择设置,在设置中找到SSH keys然后点击add SSH Key添加公钥,随便写个标题,将我们创建的公钥内容粘贴进来,保存即可
#4.关联远程库
#在命令行创建新的存储库
echo "#spider-test" >> README.md
git init
git add README.md
git commit -m "first commit"
#关联远程存储库
git remote add origin git@github.com:Qithird/Spider-12306.git
#查看远程仓库的名字,-v显示详细
git remote -v
#5.推送分支的所有内容
git push -u origin master
#6.推送更新
git push origin master

#7.克隆远程仓库
git clone git@github.com:Qithird/Spider-12306.git

(5)分支管理
#每次提交git会将修改提交到master分支上,HEAD指针指向master,而当我们创建新分支后HEAD则指向新分支,表示当前分支
#查看分支
git branch
#创建分支
git branch <name>
#切换分支
git checkout <name>
#创建+切换分支
git checkout -b <name>
#合并某分支到当前分支
git merge <name>
#删除分支
git branch -d <name>
#查看分支合并图
git log --graph
#开发中不要在master分支上开发,而是在dev分支上,在合并分支是加上--no-ff参数可以用普通模式合并,合并后历史记录有分支信息

#暂时存储分支,如在工作中接到临时任务需要处理,而当前的分支任务没完成无法提交时,可以使用stash功能来将当前工作现场储藏起来,等完成后再恢复现在即可
git stash #储藏现场分支
git stash list #查看stash
git stash pop #恢复现场并删除stash
git stash apply #只恢复现在不删除stash,继续可以上面的命令删除stash

#删除一个没有被合并过的分支使用-D强行删除
git branch -D <name>

#推送分支
git push origin branch-name
#抓取远程的新提交
git pull
#建立本地分支与远程分支的关联
git branch --set-upstream branch-name origin/branch-name

#windows系统下命令行报错:
warning: LF will be replaced by CRLF in readme.txt.
The file will have its original line endings in your working directory.
#解决方法:
rm -rf .git
git config --global core.autocrlf false

git仓库使用的更多相关文章

  1. 多本地代码工作点更新到2个远端GIT仓库

    摘要:本文介绍了笔者多个本地工作节点(地方)的多台电脑(PC/笔记本电脑)同步源码到2个远端的GIT(一个GITHUB国外强制公开,一个oschina国内可不公开). 作者:太初 转载说明:请指明原作 ...

  2. Git中如何利用生成SSH个人公钥访问git仓库

    Git中如何利用生成SSH个人公钥访问git仓库方法(这里以coding平台为例): 1. 获取 SSH 协议地址 在项目的代码页面点击 SSH 切换到 SSH 协议, 获得访问地址, 请使用这个地址 ...

  3. eclipse连接多个git仓库方法

    只需要在本地建立多个仓库就行,提交的时候一个本地仓库对应一个git仓库

  4. svn 版本迁移到 git 仓库

    1.拉取 svn代码并转成 git 版本 git svn fetch http://svn.qtz.com/svn/qtz_code/java/qtz_sm/project/qtz_sm -Auser ...

  5. git仓库的初始化

    关于git仓库的初始化和git push的操作 git init git remote add origin ssh://myserver.com/home/git/myapp.git git pul ...

  6. xcode 版本控制推送代码到远程git仓库的步骤

    一 代码推送到远程git仓库 1.在git中建立一个下项目(假设项目名称为->Mygit) 2.在xocde上新建一个测试项目(假设项目名称为GitTest) 3.打开电脑终端: 1)首先利用终 ...

  7. 【Git学习笔记】初始化Git仓库和版本回退

    学习地址 http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 什么是版本库呢?版本库又 ...

  8. (转)如何将本地git仓库上传到GitHub中托管+实践心得

    Git——新手入门与上传项目到远程仓库GitHub(转) - Chen_s - 博客园http://www.cnblogs.com/Chenshuai7/p/5486278.html 注意的问题: 1 ...

  9. svn迁移到git仓库并保留commit历史记录

    svn迁移到git仓库并保留commit历史记录 最近在做svn迁移到gitlab,由于之前一直是由svn做版本控制.最简单的方式是将svn的内容export出来,然后添加到gitlab即可.但是,如 ...

  10. 如何在Linux下使用Gitblit工具创建Git仓库服务

    嗨!朋友,今天我们将学习如何在你的Linux服务器或者PC上安装Gitblit工具.首先,我们看看什么是Git,它的功能以及安装Gitblit的步骤.Git是分布式版本控制系统,它强调速度.数据一致性 ...

随机推荐

  1. requestMapping之地址映射

    转:http://www.cnblogs.com/qq78292959/p/3760560.html 引言: 前段时间项目中用到了RESTful模式来开发程序,但是当用POST.PUT模式提交数据时, ...

  2. for循环遍历数组(数组1)

    package com.mon10.day24; import java.util.Scanner; /** * 类说明 :计算学生的总成绩和平均分 * @author 作者 : chenyanlon ...

  3. 百度钱包、百付宝、baifubao接入支付的常见问题

    [5004:参数非法,请检查输入参数后重试.]:检查是否缺少了其它必要的参数,我当时是缺少了order_no [5804,抱歉,订单创建失败,请联系客服处理]:即验证签名失败,这个只能参考文档进行处理 ...

  4. 用到的设计模式总结--单例模式+工厂方法模式+Builder模式

    一,工厂方法模式和单例模式 工厂方法模式中有一个抽象的工厂接口和一个抽象的产品接口.然后,具体的工厂实现抽象工厂并负责生产具体的产品.由客户端决定 new 哪个具体的工厂,从而生产哪种产品. 因此,与 ...

  5. 小记 HTML5 file对象

    <input type="file" id="myfile" multiple> 这是个很普通的 file 上传组件,multiple 是支持多选, ...

  6. 用phpStorm的数据库工具来管理你的数据库

    phpStorm是一个功能强大的IDE,不仅对PHP提供了支持,而且对前端HTML.CSS.JavaScript的支持也是非常不错的.此外,phpStorm还集成了很多实用的功能,下面就phpStor ...

  7. 华中邀请赛现场赛F题 Seats

    题目链接:http://acm.whu.edu.cn/land/problem/detail?problem_id=1552 解题报告:题目意思应该很清楚,就是有n个人,分别属于7个班级,然后他们坐成 ...

  8. 第12月第29天 cocos quick manual

    1. Example: $ cd cocos2d-x $ ./setup.py $ source FILE_TO_SAVE_SYSTEM_VARIABLE $ cocos new MyGame -p ...

  9. IIS发布,无法显示CSS样式和图片

    描述: 最近给同事安装web程序时,把IIS安装好后,发布网站时,图片和css样式不显示. 程序没问题,发布也没问题. 后来网上一查,出错的原因可能是IIS的配置问题. 果然,按照网上的方法,顺利显示 ...

  10. 判断gps是否在国内

    参考文章:[WP7]判断GPS坐标是否在中国 根据国家行政边界判定(光线投射算法) 按需求调整了原文中的部分边界值,测试几组边界附近内外坐标,结果较为准确. /** * 判断GPS坐标是否在多边形中 ...