廖雪峰Git笔记

自用笔记。原博客:https://www.liaoxuefeng.com/wiki/896043488029600

集中式VS分布式

集中式版本控制系统(SVN):版本库是集中存放在中央服务器,类比图书馆。

分布式版本控制系统:安全性要高很多,每个人电脑里都有完整的版本库

安装Git

WIN:在Git官网下载安装好Git后,需要在Git Bash中设置名字和邮箱

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

--global参数表示这台机器所有的Git仓库都会使用这个配置

创建版本库

版本库又名仓库(repository),这个目录里面的所欲文件都可以被Git管理。

创建版本:

  1. 创建一个空目录
    $ mkdir learngit
    $ cd learngit
    $ pwd           //显示当前目录
    /c/Users/luo
  2. 通过git init命令把这个目录变成Git可以管理的仓库
    $ git init
    Initialized empty Git repository in /c/Users/luo/learngit/.git/

将文件添加到仓库中:

  1. 编写一个新文件,这里是readme.txt。将该文件放到learngit目录下(子目录也行)
  2. 用git add命令告诉Git,把文件添加到仓库
    $ git add readme.txt
  3. 用git commit命令告诉Git,把暂存区的文件提交到仓库
    $ git commit -m "wrote a readme file"
    [master (root-commit) eaadf4e] wrote a readme file
     1 file changed, 2 insertions(+)
     create mode 100644 readme.txt

    --m后是本次提交的说明

  4. 添加文件需要add,commit两步,可以先add很多不同的文件,再commit一次提交很多文件,比如
    $ git add file1.txt
    $ git add file2.txt file3.txt
    $ git commit -m "add 3 files."

时光机穿梭

git status命令可以时刻掌握仓库当前的状态

git diff可以查看修改的内容

版本回退:
  git log可以查看命令的历史记录
  git reset --hard HEAD^可以回退到上一个版本
  git reset --hard 版本号  可以回退到指定版本
  git reflog用来记录历史命令,可以查看以前提交的版本号

工作区:电脑里能看到的目录,如learngit文件夹就是一个工作区

版本库:工作区中的隐藏目录 .git ,里面存放了很多东西,最为重要的是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
git commit就是王master分支上提交更改(需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。)。

git add两个文件后,暂存区的状态:

git commit -m "..."后:

git diff HEAD -- readme.txt命令可以查看工作区和版本库里最新版本的区别。

如果只是修改文件,但是没有用git add到暂存区,那就不会commit提交到master中。

 

git checkout -- file命令可以把文件回到最近一次git commit 或 git add 的状态,也可以直接丢弃工作区的修改

git checkout -- readme.txt

 

git reset HEAD <file>可以把暂存区未commit的修改撤销掉,重新放回工作区,即撤销git add

$ git reset HEAD readme.txt
Unstaged changes after reset:
M       readme.txt

如果想删除工作区的内容,就用cheakout

 

git rm <file>可以删除版本库中的文件,git checkout可以撤销操作

 

远程仓库

关联远程库: git remote add origin git@github.com:cspi2018/new.git

删除远程库:git remote rm origin

把本地库所有内容推送到远程库上:git push -u origin master

从远程库克隆:git clone git@github.com:cspi2018/new.git

查看当前远程库地址:git remote -v

 

分支管理

创建dev分支并切换到dev分支:git checkout -b dev 相当于git branch dev加git checkout dev两条命令

查看当前分支:git branch  当前分支前面会标记一个*

切换回master分支:git checkout master

如果没有合并分支,master未改变。合并分支:git merge dev

合并完后删除分支:git branch -d dev

 

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

解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。

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

 

转载于:https://www.cnblogs.com/betterluo/p/10998533.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值