git学习

简介

  • Git是目前世界上最先进的 分布式版本控制系统
  • CVS及SVN都是 集中式的版本控制系统
    集中式版本控制系统:有一个中央服务器,先取再传
    分布式版本控制系统:没有中央服务器,每个人的电脑上都有一个版本库,故不需要联网,多人写作,推送修改。具有强大的分支管理功能

安装

先下载,然后

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

创建版本库(repository)

$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit
$ git init
$ git add 文件名
$ git commit -m "....xxxx"

时光机

$ git status 查看仓库的状态
$ git diff 文件名 查看difference

版本回退

$ git log 来查看历史记录
$ git log --pretty=oneline 只查看一行
上一个版本 head^ 上上个 head^^
$ git reset --hard HEAD^
$ git reset --hard 3628164 这里的数字是id
$ git reflog 记录每一个记录,可以找到id

工作区和暂存区

工作区就是电脑里文件目录
版本库:.git文件,版本库里最重要的stage就是暂存区
第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

管理修改

cat index.html 查看index.html的内容
如果:
第一次修改 -> git add -> 第二次修改 -> git commit
第二次修改并没有进入暂存区,不会被提交
解决:
git add再git commit
第一次修改 -> git add -> 第二次修改 -> git add -> git commit

撤销修改

$ git checkout -- readme.txt

  • git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

把readme.txt文件在工作区的修改全部撤销

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout – file。

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

删除修改

$ git rm test.txt
rm 'test.txt'
$ git commit -m "remove test.txt"

如果删错了
$ git checkout -- test.txt

添加到远程库

关联 git remote add origin git@server-name:path/repo-name.git
第一次推送 git push -u origin master
从远程库克隆 $ git clone git@github.com:michaelliao/gitskills.git

分支

  • 查看分支:git branch

  • 创建分支:git branch

  • 切换分支:git checkout

  • 创建+切换分支:git checkout -b

  • 合并某分支到当前分支:git merge

  • 删除分支:git branch -d

解决冲突

当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。

用git log –graph命令可以看到分支合并图。

  • 如果要丢弃一个没有被合并过的分支,可以通过git branch -D 强行删除。

多人协作

多人协作的工作模式通常是这样:

  • 首先,可以试图用git push origin branch-name推送自己的修改;

  • 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

  • 如果合并有冲突,则解决冲突,并在本地提交;

  • 没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!

如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch –set-upstream branch-name origin/branch-name

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值