zoukankan      html  css  js  c++  java
  • Git&Github基本操作与分支管理

    【本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究。若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!】

    Git的原理涉及快照流、链表、指针等,这里不作过多叙述。

    1.基本操作

    git init

    创建一个 Git 仓库

    git clone [url]

    拷贝一个 Git 仓库到本地

    git add [file_name]

    git add 命令可将该文件添加到缓存

    git commit -m "备注信息"

    使用 git add 命令将想要快照的内容写入缓存区, 而执行 git commit 将缓存区内容添加到仓库中。使用 -am 可以跳过 add 命令

    git reset HEAD

    git reset HEAD 命令用于取消已缓存的内容

    git status

    git status 以查看在你上次提交之后是否有修改

    • -s 参数可以获得简短的结果输出

    git rm

    从 Git 中移除某个文件。

    • -f : 强制删除
    • --cached : 从暂存区域移除,但仍然希望保留在当前工作目录中
    • –r * : 递归删除整个目录内的子目录和文件

    git mv

    git mv 命令用于移动或重命名一个文件、目录、软连接

    2.设置签名

    签名 = 用户名 + 邮箱

    项目级别/ 仓库级别

    git config userName demo@163.com

    保存在 ./.git/config 文件

    系统用户级别

    git config --global userName demo@163.com***

    保存在 ~/.gitconfig 文件

    项目级别优先于系统用户级别,不能没有签名。

    3.查看历史记录

    git log --pretty=oneline

    git log [--oneline]

    git reflog

    多屏显示控制方式:

    空格向下翻页

    b 向上翻页

    q 退出

    4.版本回退

    基于索引值的版本回退

    查找历史版本,黄色字体(最左边开头部分)就是索引值。

    git reflog

    回退

    git reset --hard [索引值]

    使用^回退一步

    git reset --hard HEAD^

    git reset --hard HEAD^^

    使用~回退n步

    git reset --hard HEAD~n

    reset 命令的三个参数对比

    --soft 参数

    • 仅仅在本地库移动 HEAD 指针

    --mixed 参数

    • 在本地库移动 HEAD 指针
    • 重置暂存区

    --hard 参数

    • 在本地库移动 HEAD 指针
    • 重置暂存区
    • 重置工作区

    5.比较文件差异

    【本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究。若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!】

    git diff [文件名]

    • 将工作区中的文件和暂存区进行比较

    git diff [本地库中历史版本] [文件名]

    • 将工作区中的文件和本地库历史记录比较
    • git diff HEAD apple.txt

    不带文件名比较多个文件

    6.分支操作

    • 创建分支

      git branch [分支名]

    • 查看分支

      git branch -v

    • 切换分支

      git checkout [分支名]

    • 合并分支

      将任何分支合并到当前分支

      git merge [分支名]

    • 合并冲突

      • 合并冲突时,会进入MERGING状态,查看冲突文件。

        <<<<<<< HEAD
        123456
        =======
        456789
        >>>>>>> master

        HEAD:当前分支内容

        master:另一分支内容

        此时进入手动修改阶段.....

      • 冲突的解决

        • 编辑文件,删除特殊符号

        • 把文件修改到满意的程度,保存退出

        • git add [文件名]

        • git commit -m "日志信息"

          此时commit一定不能带文件名。

    本地库关联Github远程库

    git remote add [shortname][url]

    例:git remote add origin git@github.com:tianqixin/runoob-git-test.git

    推送到远程仓库

    git push [alias][branch]

    例:git push origin master

    推送冲突

    如果在你提交修改时已经有了其它人提交修改,那就会产生冲突。

    这时候可以先合并冲突 pull 拉取到本地,然后按照 合并冲突 的解决方法做即可。

    查看当前的远程库

    git remote [-v]

    1.从远程仓库下载新分支与数据到本地

    git fetch [alias]/[branch]

    2.从远端仓库提取数据并尝试合并到当前分支

    git merge [alias]/[branch]

    拉取(pull = fetch+merge)

    git pull [alias][branch]

    删除远程仓库

    删除远程仓库你可以使用命令:

    git remote rm [alias]

    版权声明

    【本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究。若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!】

  • 相关阅读:
    oo第八次作业--5,6,7次作业总结
    OO前三次作业总结
    软工总结
    黄衫感想博客
    软工结对编程博客
    软工第一次阅读
    软工第0次作业
    OO第四次博客
    OO第三次博客
    OO第二次博客
  • 原文地址:https://www.cnblogs.com/onblog/p/13043199.html
Copyright © 2011-2022 走看看