git 廖雪峰学习笔记

#git的诞生
Linus坚决反对CVS和SVN等集中式版本控制系统(因为速度慢且需要联网)
–>BitMover公司授权Linux社区商业软件BitKeeper免费使用权
–>Linus社区牛人试图破解BitKeeper的协议被BitMover公司发现
–>BitMover公司收回Linux社区BitKeeper免费使用权
–>Linus花两周时间用C语言写出了分布式版本控制系统Git
集中式VS分布式
分布式在本地就可保存历史痕迹,不用担心污染服务器,集中式提交就到服务器了,如果提交出错就比较麻烦。
集中式版本控制系统的版本库放在中央服务器,分布式版本控制系统的版本库每个人的电脑上都有。
集中式版本控制系统必须联网才能使用,分布式版本控制系统不必联网就能使用。
分布式版本控制系统的安全性更高,分支管理特别优秀。
集中式如果单点故障,大家甚至无法提交更无法开分支。
有趣的小知识
以前软件GNU Interactive Tools也叫GIT,所以老版本Linux安装git需要使用命令sudo apt-get install git-core。
当然,之后随着Git的名气越来越大,后来GNU Interactive Tools改名成了gnuit,git-core正式改名为git
Unix的哲学之一
“没有消息就是好消息”
Git命令行的使用
1:提交与简单使用
$ git add:添加到暂存区
$ git commit -m “注释” :暂存区的所有修改提交到当前分支
$ git status:查看当前分支状态
$ cat xx.txt:查看xx.txt文件
2:回退过去与未来版本
$ git log:最近的提交日志 顺序先提交的在下面,后提交的在上面
$ git reset --hard HEAD: HEAD是当前版本 HEAD^上一个版本
$git reset --hard 1094a hard后为commit id
$ git reflog:查看历史命令,可用于查询未来版本的commit_id
3:管理修改与删除文件
$ git diff HEAD – readme.txt :查看当前版本和工作区的readme.txt的区别
$ git checkout – readme.txt:撤销工作区readme.txt的所有修改,让这个文件回到最近的一次git add或者git commit的版本
$ git reset HEAD readme.txt:撤销暂存区readme.txt的修改
$ rm readme.txt:删除工作区reademe.txt文件
$ git rm readme.txt:删除版本库中readme.txt文件
4:创建与管理分支
$ git checkout-b dev:创建一个dev分支 并切换到改分支
$ git branch:查看当前所有分支 当前分支会标*
$ git checkout master:切换到master分支
$ git merge dev:合并dev分支到当前分支(快速合并,即把分支指针移动一下) 如果两个分支同时提交了修改则会发送冲突 需手动进行修改
$git log –graph –pretty=oneline –abbrev-commit:查看分支合并图
$ git branch -d dev:删除dev分支
$ git merge --no-ff -m “merge with no-ff” dev:禁用Fast forward的合并分支,合并时会生成一个新的commit 即可查看历史信息的合并信息
$ git stash:储存当前未提交到工作区的环境
$ git stash list:查看保存的工作环境
$ git stash pop:回复工作环境但会删除stash记录
$ git stash apply:回复工作环境但不会删除stash记录
$ git branch -D dev:丢弃没有合并的dev分支
5:与远程仓库链接
$ git remote add origin git@github.com:“用户名”/learngit.git:在本地关联远程库
$ git push -u origin master:将本地库的所有内容推送入远程库
$ git clone git@github.com:“用户名”/gitskills.git:克隆远程库
$ git remote -v:查看远程仓库的详细信息
$ git push origin master:推送master分支上的所有信息
$ git branch -b dev origin/dev:从远程仓库克隆默认只有master分支,需创建dev分支到本地进行开发
$ git pull:将最新的开发进程从远程进行抓取,进行合并再通过git push 进行提交
$ git branch --set-upstream-to=origin/dev dev:设置远程的dev分支与本地的dev分支进行链接
$ git rebase:把本地未push的分叉提交历史整理成直线,使查看历史提交的变化更容易
5:标签
$ git tag v1.0:给当前分支当前commit打上标签
$ git tag v0.9 f52c:给f52c版本的分支打上标签
$ git tag -a v0.1 -m “version 0.1 released” 1094ad:带有说明的标签
$ git show v0.1:查看v0.1标签的详细信息
$ git tag:查看所有标签
$ git tag -d v0.1:删除0.1标签
$ git push origin v1.0:推送v1.0标签到远程
$ git push origin --tags:一次性推送所有标签到远程
$ git push origin :refs/tags/v0.9:远程删除标签

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值