Git学习

44人阅读 评论(0) 收藏 举报
分类:

前言

听到大佬说我太菜了.没办法啊,确实蛮菜的,需要学习很多东西吧,就很难受。

正文

安装

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

--global是指这台机器上所有的Git仓库都会使用这个配置

创建版本库

mkdir建立一个空目录
然后,用git init初始化当前目录Git可以管理的仓库

文件

上传文件

用命令git add ***把文件添加到仓库
接着用git commit -m "***"把文件提交到仓库

文件改动

git status命令可以让我们时刻掌握仓库当前的状态,上面的命令告诉我们,readme.txt被修改过了,但还没有准备提交的修改。
git diff顾名思义就是查看difference,显示的格式正是Unix通用的diff格式
git log命令显示从最近到最远的提交日志

Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交,上一个版本就是HEAD^,上上一个版本就是HEAD^^,往上100个版本写成HEAD~100

把当前版本回退到上一个版本,就可以使用git reset --hard HEAD^,经尝试,命令在Bash
下运行无错,在cmder下会有出现More的提示,只需要再写一下HEAD后面的^就可以了

如果真的返回上一个版本了,还想撤回本次操作,那么可以使用git reflog命令,来记录你的每一次命令。接着用git reset --hard commit_id命令回到操作前的状态

撤销修改

当发现文件改动后,准备提交前,发现文件有问题,可以用git checkout -- file可以丢弃工作区的修改
命令git checkout -- git学习 意思就是,把git学习文件在工作区的修改全部撤销,这里有两种情况:
一种是 git学习 自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态
一种是 git学习 已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态

总之,就是让这个文件回到最近一次git commit或git add时的状态。

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

删除

当你在工作区删除文件后,你有两个选择
一是确实要从版本库中删除该文件,那就用命令git rm file删掉,并且git commit
另一种情况是删错了,git checkout -- file

仓库

分布式优点

可以利用ssh 添加多个Key,假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了

推送到远程库

关联远程库
git remote add origin https://github.com/Draymonders/git-learning.git
第一次推送master分支的所有内容
git push -u origin master
以后就可以用
git push origin master

使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放
http端口的公司内部就无法使用ssh协议而只能用https

分支

创建分支

git checkout -b dev 表示创建并切换
相当于

git branch dev //创建dev分支
git checkout dev //使用dev分支

git branch 命令会列出所有分支,当前分支前面会标一个*号

然后修改文件 接着git add and git commit
接着回到master分支下 git checkout master
dev分支合并到master下,用git merge dev
合并完成就可以删除dev分支了,用git branch -d dev

分支语句汇总

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

分支合并图:git log --graph

分支管理策略

合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
git merge --no-ff -m "merge with no-ff" beta

master是稳定版本,最好不要轻易动
然后下面建立一个beta测试版本,用来汇总代码和测试
最后建立每个人的分支,汇总到beta分支下。

查看评论

Git入门学习和使用

开篇废话 开篇废话又回来了,离开博客算是有一年了,之间曾经痛下很多次决心,继续写博客,后来都失败了,前年为了申请个CSDN专家,每天发博客,那个高产的状态,现在已然不行了,时过境迁,当时为了吃口饱饭...
  • TonyShengTan
  • TonyShengTan
  • 2016-07-23 17:14:48
  • 3639

git学习------>写给 Git 初学者的7个建议

PS:本文转载于(http://blog.jobbole.com/50603/),本文由 伯乐在线 - 吴鹏煜 翻译。 英文出处:(http://sixrevisions.com/web-develo...
  • qq446282412
  • qq446282412
  • 2017-02-11 11:41:29
  • 2311

Git 学习初始篇

Gitwhat is Git重点:强大的代码管理工具!为什么使用?重点:使用github社区必备,而且确实方便高效。git与svn区别 svn将代码放于中央服务器;git属于分布式版本控制系统,每个版...
  • Louislip
  • Louislip
  • 2016-11-13 23:00:17
  • 1030

从零开始学习git的一些命令 (初学者入门)

我觉得git的发明人真的是一个天才,不但可以在任意地方搞,而且可以回退任意的版本,也可以回到未来的版本。可以查看每一次修改的版本号码。可以查看修改的内容。 首先你要搞一个文件夹吧。我们直接从从开始...
  • sky_miange
  • sky_miange
  • 2017-03-08 22:45:25
  • 371

Git学习教程

  • 2017年11月11日 17:10
  • 1.3MB
  • 下载

三个免费的交互式Git学习网站

转载自:http://www.open-open.com/lib/view/open1420508778375.html Git 是一个强大的版本控制工具,但学起来真的好枯燥、很痛苦;但你又...
  • nolan_coder
  • nolan_coder
  • 2016-10-27 14:58:47
  • 674

Git常用命令学习手册

注意: 学习前请先配置好Git客户端 相关文章:Git客户端图文详解如何安装配置GitHub操作流程攻略 官方中文手册:http://git-scm.com/book/zh ...
  • Scythe666
  • Scythe666
  • 2016-07-18 10:20:39
  • 1602

git学习资料大全

  • 2013年08月20日 19:12
  • 9.18MB
  • 下载

git学习,git视频教程,git资料共享

Git学习,Git视频教程,这里把个人学习经验总结如下: Linus为Linux Kernel Project发起的版本控制项目。 HEAD代表当前最新状态。 tag为某个状态的标签。 ...
  • qq_31307253
  • qq_31307253
  • 2017-10-28 07:39:53
  • 737

Git开源项目学习总结

概述 工作中发现Git客户端在处理中文目录时有Bug,利用业余时间定位Bug原因,接触到msysgit,tcl/tk,tortoisegit等开源项目,尝试编译了这些项目,并看了其中一部分代码,...
  • yjy122333
  • yjy122333
  • 2016-04-14 10:27:52
  • 333
    个人资料
    持之以恒
    等级:
    访问量: 4715
    积分: 284
    排名: 27万+
    文章分类