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. 洛谷P3721 单旋

    什么毒瘤...... 题意:模拟一棵单旋splay,求每次插入,splay最值,删除最值的操作次数. 解:乍一看感觉很神,又因为是LCT题单上的,然后就折磨了我好久,最后跑去看题解... 居然是手玩找 ...

  2. python之旅:面向对象进阶

    一 isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo(object) ...

  3. Python 模块之shutil模块

    #拷贝文件,可指定长度,fsrc和fdst都是一个文件对象 def copyfileobj(fsrc, fdst, length=16*1024) shutil.copyfileobj(open(&q ...

  4. Tomcat权威指南-读书摘要系列10

    Tomcat集群 一些集群技术 DNS请求分配 TCP网络地址转换请求分配 Mod_proxy_balance负载均衡与故障复原 JDBC请求分布与故障复原

  5. JeeSite 4.x 树形结构的表设计和用法

    有些同仁对于 JeeSite 4 中的树表设计不太了解,本应简单的方法就可实现,却写了很多复杂的语句和代码,所以有了这篇文章. 在 JeeSite 4 中的树表设计我还是相对满意的,这种设计比较容易理 ...

  6. 何凯文每日一句打卡||DAY9

  7. 使用mybatisgenerator 辅助工具逆向工程

    使用mybatisgenerator 辅助工具生成单表的dao层接口,mapper xml 文件以及实体类,复杂的还得人手动去编写哈...所以我也不觉得这玩意儿在项目简单情况下有什么鸟用... wha ...

  8. IntelliJ IDEA 破解 - pycharm

    MAC激活方法 下载破解文件 下载地址: https://files.cnblogs.com/files/resn/JetbrainsCrack-2.7-release-str.jar.zip 或者去 ...

  9. html5 canvas 奇怪的形状垂直渐变

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. 浅谈区间DP的解题时常见思路

    一.区间DP解题时常见思路 如果题目中答案满足: 大的区间的答案可以由小的区间答案组合或加减得到 大的范围可以由小的范围代表 数据范围较小 我们这时可以考虑采用区间DP来解决. 那么常见的解法有两种: ...