美文网首页
git命令理解与使用

git命令理解与使用

作者: 走停2015_iOS开发 | 来源:发表于2019-10-09 11:40 被阅读0次
DB7B243E-5702-4D8C-8024-46965A1F8C4B.png
本地仓库 = 工作区 + 版本区
版本区(版本库)即.git文件,暂存区(stage) + 分支(master) + 指针Head
1.配置信息
`git config --global user.name `"你的名字" 让你全部的Git仓库绑定你的名字
`git config --global user.email` "你的邮箱" 让你全部的Git仓库绑定你的邮箱
2.正常流程
`git clone + 仓库地址` 下载克隆文件
`git init ` 原本本地仓库只包含着工作区,这是最常见的工作状态。此时,git init一下,表示在本地区域创建了一个.git文件,版本区建立。
`git add .` 表示把工作区的所有文件全部提交到版本区里面的暂存区,当然你也可以通过 git add ./xxx/ 一条一条分批添加到暂存区。
`git commit -m "xxx" `把暂存区的所有文件提交到仓库区,暂存区空空荡荡。
`git remote add origin https://github.com/name/name_cangku.git ` 把本地仓库与远程仓库连接起来。
`git push -u origin master ` 把仓库区的文件提交到远程仓库里。
`git push -u origin <其他分支>`  把其他分支提交到远程仓库
`git pull` 把最新的提交从远程仓库中抓取下来,在本地合并,和git push相反
3.查看改变和历史
`git status`查看当前仓库的状态
`git diff `查看文件修改的具体内容
`git diff HEAD -- readme.txt` 命令可以查看工作区和版本库里面最新版本的区别:
`git log` 显示从最近到最远的提交历史
`git reflog` 显示命令历史
`git log --graph` 查看分支合并图
`git remote` 查看远程库的信息,会显示origin,远程仓库默认名称为origin
`git remote -v` 显示更详细的信息
3.回退修改版本操作

Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,,
上一个版本就是HEAD^,上上一个版本就是HEAD^^
当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

`git reset HEAD <file>`     可以把暂存区的修改撤销掉,重新放回工作区。
`git reset --hard HEAD^`     回溯版本当前版本, 
`git reset --hard + 版本号`  回溯版本,版本号在commit的时候与master跟随在一起。
`git rm < filename >` 删除版本库的文件。
`git checkout -- <file>` 撤销命令,用版本库里的文件替换掉工作区的文件
1. 修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态。
2. 已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
4.分支操作
`git checkout -b <分支名字>或者git switch -c <分支名字>` 创建+切换分支:
`git branch` 查看当前所有分支
`git branch <分支名字>` 创建分支
`git checkout <分支名字>或git switch <分支名字>` 切换到分支
`git merge <分支名字> ` 合并分支]
 `git merge --no-ff -m "备注信息" <分支名字>` 请注意--no-ff参数,表示禁用Fast forward,因为本
次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去,合并后,我们用git log看看分支历史。
`git branch -d <分支名字>` 删除分支,有可能会删除失败,因为Git会保护没有被合并的分支
`git branch -D + <分支名字>` 强行删除,丢弃没被合并的分支
`git checkout -b dev` //新建并切换到本地dev分支
`git pull origin dev`  //本地分支与远程分支相关联
//在本地新建分支并推送到远程
`git checkout -b test`
`git push origin test`    //这样远程仓库中也就创建了一个test分支
5.冻结操作(进行的工作没有做完,还不能提交)
`git stash` 当有其他任务插进来时,把当前工作现场“存储”起来,以后恢复后继续工作
`git stash list` 查看你刚刚“存放”起来的工作去哪里了
`git stash apply` 恢复却不删除stash内容
`git stash drop` 删除stash内容
`git stash pop `恢复的同时把stash内容也删了
5.标签操作
`git tag` 查看所有标签,可以知道历史版本的tag
`git tag <name>` 打标签,默认为HEAD。比如git tag v1.0
`git tag <tagName> <版本号>` 把版本号打上标签,版本号就是commit时,跟在旁边的一串字母数字
`git show <tagName>` 查看标签信息
`git tag -a <tagName> -m "<说明>" `创建带说明的标签。-a指定标签名,-m指定说明文字
`git tag -d <tagName>` 删除标签
`git push origin <tagname>` 推送某个标签到远程
`git push origin --tags `一次性推送全部尚未推送到远程的本地标签
`git push origin :refs/tags/<tagname>`删除远程标签<tagname>

注意

  • SSH警告
    当你第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告,如下所示,这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可。
The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.
RSA key fingerprint is xx.xx.xx.xx.xx.
Are you sure you want to continue connecting (yes/no)?

Git会输出一个警告,告诉你已经把GitHub的Key添加到本机的一个信任列表里了:

Warning: Permanently added 'github.com' (RSA) to the list of known hosts.
  • 哪些分支需要推送
  • master分支是主分支,因此要时刻与远程同步;
  • dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;
  • bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;
  • feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。

参考文章:https://www.liaoxuefeng.com/wiki/896043488029600
https://www.jianshu.com/p/2b3b23d6166c
https://www.jianshu.com/p/c2ec5f06cf1a

相关文章

  • git命令理解与使用

    本地仓库 = 工作区 + 版本区 版本区(版本库)即.git文件,暂存区(stage) + 分支(master) ...

  • iOS-Git与Xcode

    资 料 片 / 超 人 关于Xcode9中git的使用与git命令 Git 命令 $git init //初...

  • git操作与简介

    1,.git目录与git命令 1)使用git init命令,将会在当前目录创建一个.git目录,包含了所有git正...

  • Git原理及基本命令

    最近工作经常使用Git,本文重点总结归纳一下git经常使用的命令和用法,以及对git基本原理的理解。 一、Git安...

  • git branch 分支与合并

    在使用 git 进行分支开发与合并的时候需要用到这些命令。其他基本 git 命令参考 Git 简易食用指南 git...

  • GIT中数据的存储与组织

    GIT中数据的存储与组织 我们经常使用一些Git的命令,例如checkout,commit等命令,这些都是高级命令...

  • Git命令使用

    Git命令使用 前言在使用Git命令之前都使用可视化工具SourceTree操作git,现在需要Git Andro...

  • Git操作记录

    本文目录 一台电脑配置多个git账号 git常用的操作命令 使用git命令合并多条commit记录 使用git命令...

  • 深入理解 Git

    深入理解 Git Git 使我们日常使用的开发工具,用于代码的版本管理,但是我们常用的各种命令 git add, ...

  • GIT实战

    git实战 git与svn的区别 git核心命令使用 git底层实现原理剖析 基于git通信协议搭建git私服 基...

网友评论

      本文标题:git命令理解与使用

      本文链接:https://www.haomeiwen.com/subject/oebwpctx.html