• Git常用的基本操作


    一.如何学习git指令

    1.查看帮助:git help
    2.查看指定命令:git help clone
    3.搜索关键字:/chone
    4.退出帮助文档:输入Q

    二.常见命令

    1.初始化git本地仓库:先进入目标文件夹然后输入git init
    2.创建文件:touch car.h
    3.查看文件状态:git status
    查看最新改动:git diff 文件名
    4.添加到git暂缓区:git add Car.h
    5.添加多个文件到暂缓区:git add .
    6.提交代码:gitcommit -m “说明”
    7.第一次需要设置账户的用户名和email

    git config --global user.name "xxx" 
    git config --global user.email xxx.me@gmail.com 

    红色文件:文件没有被纳入到git管理中
    绿色文件:文件加入到了‘暂存区’

    三.配置账号信息(一般来讲只需配置一次全局的账号即可)

    配置局部信息

    git config user.name "xxx" 
    git config user.email xxx.me@gmail.com

    配置全局信息
    git config --global user.name "xxx"
    git config --global user.email xxx.me@gmail.com

    1.如果没有配置过账号信息,那么git会有一个默的账号信息
    2.如果配置的是全局信息那么
    查看账户信息

    cat ~/.gitconfig

    修改全局信息

    gedit ~/.gitconfig

    四.查看日志

    1.git log
    2.一次显示一行

     git log --pretty=oneline

    五:回退版本

    如果文件已经被commit 可以通过git reset来回退版本
    1.在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
    现在,我们要把当前版本回退到上一个版本,就可以使用git reset命令:

    $ git reset --hard HEAD^

    2.回到某个版本:

    $ git reset --hard 3628164

    3.检出当前分支的最高版本:

    git checkout Car.h

    4. 用来记录你的每一次命令,可以在这里看到程序

    git reflog

    5.删除文件

    git rm -Car.h
    git commit -m “说明”

    还原

     git checkout -- Car.h

    六.github

    1.注册github账号
    2.创建SSH key 在用户主目录下,看看有没有.ssh目录
    id_rsa 私钥
    id_rsa.pub 公钥
    3.登陆github 打开setting,SSH key界面,点Add SSH key,填上任意Title,在Key文本框里粘贴id_rsa.pub

    4.添加远程库,登陆github创建一个新的仓库,然后根据github的提示,在本地的仓库下运行命令
    把本地仓库上传到github仓库 

    git remote add origin git@github.com:liushaocong/learngit.git

    在本地仓库的内容推送到远程 

    git push origin master

    从远程库克隆 

    git clone git@github.com:liushaocong/learngit.git

    5.创建一个分支

    git checkout -b dev

    #-b表示创建并切换相当于一下两条命令

    创建一个dev分支$git branch dev  

    切换到dev分支$git checkout dev 

     列出所有分支 当前分支前面加* 

    git branch
    * dev
    master

    在dev分支上修改文件

    切换到master分支

    git checkout master

    合并指定分支到当前分支

    git merge dev

    删除dev分支

    git branch -d dev 

    两个版本文件冲突,首先解决冲突再提交,合并完成

    git log --graph --pretty=oneline --abbrev-commit 分支合并图

    合并分支时,如果可能,Git会用Fast forward 模式,但这种模式下,删除分支后,会丢掉分支信息。
    如果强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
    首先,仍然创建并切换dev分支:

    $ git checkout -b dev
    Switched to a new branch 'dev'

    修改readme.txt文件,并提交一个新的commit:

    $ git add readme.txt 
    $ git commit -m "add merge"
    [dev 6224937] add merge
    1 file changed, 1 insertion(+)

    现在,我们切换回master:

    $ git checkout master
    Switched to branch 'master'

    准备合并dev分支,请注意--no-ff参数,表示禁用Fast forward:

    $ git merge --no-ff -m "merge with no-ff" dev
    Merge made by the 'recursive' strategy.
    readme.txt | 1 +
    1 file changed, 1 insertion(+)

    因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。

    合并后,我们用git log看看分支历史:

    $ git log --graph --pretty=oneline --abbrev-commit
    * 7825a50 merge with no-ff
    |
    | * 6224937 add merge
    |/
    * 59bc1cb conflict fixed
    ...

    可以看到,不使用Fast forward模式,merge后就像这样:

     七.创建标签

    首先,切换到需要打标签的分支上

    然后敲命令git tag <name>就可以打一个新标签:
    git tag v0.1

    $ git checkout dev
    Switched to branch 'dev'
    $ git branch 
    * dev
      master
    $ git tag v0.1

    可以敲命令git tag 查看所有的标签

    忘了打标签可以找到历史提交的commit id,然后打上

    &git log --pretty=oneline --abbrev-commit 
    3d919ae add merge
    902eb16 conflict fixed
    d347d7d & simple
    c209efc and simple
    e0f50b8 branch test
    b1f57f6 smile
    $ git tag v0.2 c209ef
    

      

    用git show <tagname>查看标签信息

    如果标签打错了,也可以删除:

    $ git tag -d v0.1
    Deleted tag 'v0.1' (was 3d919ae)
    

    创建的标签都只存储到本地,不会自动推送到远程,如果要推送某个标签到远程,使用命令git push origin <tagname>

    git push origin v0.1
    

    或者一次性推送全部尚未推送到远程的本地标签

    git push origin --tags
    

    如果标签已经推送到远程,要删除远程标签,先从本地删除

    git tag -d v0.1
    

    然后,从远程删除。删除命令也是push,但是格式如下:

    git push origin :/refs/tags/v0.1
    

      

  • 相关阅读:
    js addEventListener事件多次绑定问题
    whistle手机调试工具使用简单教程
    css利用padding-top设置等比例遇到的问题
    webpack多页面配置
    js延时定时器
    webpack打包配置禁止html标签全部转为小写
    css媒体查询aspect-ratio宽高比在less中的使用
    比较好用的移动端适配的两种方案及flexible和px2rem-loader在webpack下的配置
    image-webpack-loader包安装报错解决
    js动态设置padding-top遇到的坑
  • 原文地址:https://www.cnblogs.com/liushaocong/p/7044873.html
Copyright © 2020-2023  润新知