zoukankan      html  css  js  c++  java
  • Git学习笔记

    1. Git是分布式版本控制系统,相对的,CVS、SVN都是集中式的版本控制系统;

    2. Git安装(Linux)

    1) 使用

    $ git

    查看当前系统是否安装了git;

    2) 如果当前系统还没有安装git,在Debian或Unbuntu下,可以使用命令

    $ sudo apt-get install git

    完成git的安装;

    3) 如果是其他Linux版本,先从Git官网下载源码,解压然后依次输入:

    $ ./config
    $ make
    $ sudo make install

    4) 安装完成后,进行设置,在命令行输入:

    $ git config --global user.name “Your name”
    $ git config --global user.email email@example.com

    注:使用git config命令的–global参数之后,表示当前机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的username和Email地址;

    3. 创建版本库

    1) 选择一个合适的地方,创建一个空目录;

    $ mkdir directory-name
    $ cd directory-name
    $ pwd

    pwd命令用于查看当前目录;

    2) 使用

    $ git init

    命令把该目录变成Git可以管理的仓库:

    4. 使用

    $ git status

    命令查看当前仓库的状态;

    5. 使用$ diff file-name查看当前版本文件和远程仓库版本的区别;

    使用

    $ git diff HEAD -- file-name

    查看工作区和版本库里最新版本的区别;

    6. 版本回退

    1) 使用

    $ git log

    查看历史记录;

    2) 使用

    $ git log --pretty=oneline

    查看简单历史记录;

    3) 使用

    $ git reset --hard HEAD^

    回退到最近的上一个版本;

    4) 使用

    $ cat file-name

    查看文件内容;

    5) 假定有历史版本,其版本号的前几位为123456,使用

    $ git reset --hard 123456

    退回到该版本号标识的版本;

    6) 使用

    $ git reflog

    命令查看命令历史列表;

    7. 关于Git的版本回退

    Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当执行版本回退操作时,Git仅仅是把该指针的指向改变而已;

    8. 工作区和暂存区

    工作区(Working Directory): 当前操作的文件所在的目录就是一个工作区;

    版本库(Repository): 工作区有一个隐藏目录”git”,该目录不是工作区,而是Git的版本库,该目录下保存了成为stage(或者成为index)的暂存区,还有Git为该仓库工作而自动创建的第一个分支master,以及指向master的指针HEAD;

    9. Git添加文件的步骤

    1) 使用

    $ git add file-name

    把文件修改添加到暂存区;

    2) 使用

    $ git commit –m ‘comment’

    把暂存区的所有内容提交到当前分支;

    注: 对于每次修改,如果不把该次修改添加到暂存区,就不会被加入到commit里面;

    10. Git跟踪管理的对象是修改,而不是文件;

    11. 撤消修改

    1) 当错误修改了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令

    $ git checkout -- file-name

    完成操作;

    2) 不仅错误修改了工作区某个文件的内容,而且还将该修改添加到了暂存区,要丢弃该次修改,第一步使用

    $ git reset HEAD file-name

    回到步骤1),然后按步骤1)进行操作;

    3) 如果已经把不合适的修改提交到了版本库时,要撤消本次提交,参考6. 版本退回,不过前提是尚未推送到远程库;

    12. 删除文件

    1) 直接在文件管理器中删除无用文件,使用命令

    $ rm file-name

    进行操作;

    2) 如果要确实从版本库中删除该文件,使用命令

    $ git rm file-name

    进行操作;

    3) 如果删除错了,可以使用版本库的最新版本进行恢复,使用命令

    $ git checkout -- file-name

    进行操作;

    13. 远程仓库

    1) 创建SSH Key,在用户主目录下,如果有.ssh目录,但该目录下没有私钥文件id_rsa和公钥文件id_rsa.pub两个文件,使用shell创建SSH Key:

    $ ssh-keygen -t rsa -C "email@example.com"

    14. 克隆远程仓库

    使用命令

    $ git clone git@github.com:jiabailie/Collections.git

    进行操作;

    注: Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快;

    15. 分支管理

    1) 创建并切换分支

    使用

    $ git checkout -b dev

    创建dev分支,并把当前分支切换到dev分支;

    上面的一条命令相当于

    1 $ git branch dev
    2 $ git checkout dev

    两条命令的效果;

    2) 查看当前分支,使用

    $ git branch

    进行操作;

    3) 当前dev分支工作并且提交后,切换回master分支,使用

    $ git checkout master

    进行分支切换;

    4) 合并dev分支到master分支,使用命令

    $ git merge dev

    进行操作,前提是已经切换回master分支;

    5) 分支合并后,删除dev分支,使用命令

    $ git branch -d dev

    进行操作;

    16. 冲突解决

    查看分支合并情况,使用命令

    $ git log --graph --pretty=oneline --abbrev-commit

    进行操作;

    17. 分支管理策略

    Git默认使用Fast forward模式,在该模式下,删除分支后,会丢弃该分支的信息;

    使用–no-ff参数禁用Fast forward方式的merge,禁用后,git会在merge时生成一个新的commit,由此从该分支历史上可以看出分支信息,
    使用命令

    $ git merge --no-ff -m 'merge with no-ff' dev

    完成操作;

    18. Bug分支

    1) 使用stash功能可以把当前的工作现场保存起来,等以后恢复现场后继续工作,使用

    $ git stash

    命令完成操作;

    2) 使用

    $ stash list

    命令查看保存的工作现场列表;

    3) 有两种办法用来恢复现场:

    第一种是使用

    $ git stash apply

    恢复现场,恢复后stash的内容不会删掉,需要使用

    $ git stash drop

    命令进行删除操作,使用时先使用

    $ git stash list

    查看stash列表,然后恢复指定的stash,例如

    $ git stash apply stash@{0}

    第二种是使用

    $ git stash pop

    恢复现场,恢复现场的同时也会把stash的内容删除;

    19. 强行删除指定分支,使用命令

    $ git branch -D branch-name

    进行操作;

    20. 多人协作

    1) 查看远程库信息,使用命令

    $ git remote

    进行操作;

    如果要查看详细,使用命令

    $ git remote -v

    进行操作;

    2) 创建远程origin下dev分支的本地dev分支,使用命令

    $ git checkout -b dev origin/dev

    进行操作;

    3) 设置本地dev分支和远程origin/dev分支的链接,用于git pull操作,使用命令

    $ git branch --set-upstream dev origin/dev

    进行操作。





    如果,感到此时的自己很辛苦,那告诉自己:容易走的都是下坡路。坚持住,因为你正在走上坡路,走过去,你就一定会有进步。如果,你正在埋怨命运不眷顾,开导自己:命,是失败者的借口;运,是成功者的谦词。命运从来都是掌握在自己的手中,埋怨,只是一种懦弱的表现;努力,才是人生的态度。
  • 相关阅读:
    Docker 私有仓库搭建
    事务提交与不同数据库的自增方式
    多环境切换&&注解方式&&增删改返回值问题
    查询缓存&&逆向工程
    Mybatis整合Log4j、延迟加载
    关联查询
    MyBatis实现动态SQL
    输出参数resultType
    MyBatis调用存储过程执行CRUD
    两种取值符号的异同
  • 原文地址:https://www.cnblogs.com/superit/p/3831353.html
Copyright © 2011-2022 走看看