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

    Git

    总览

    • git的工作流程
    • git reset HEAD. 等同于git reset --hard HEAD

    设置签名

    • 项目级别/仓库级别:仅在当前本地库范围内有效
    git config user.name tom
    git config user.email hello@gmail.com
    
    • 系统用户级别: 登入当前操作系统的用户范围
    git config --global user.name tom
    git config --global user.email hello@gmail.com
    

    git基础操作

    状态查看

    git status
    查看工作区,暂存区状态
    

    初始化

    + 初始化: git init 文件夹名
    + 初始化: git init # 当前路径全被管理
    

    添加

    git add .  # 添加所有文件
    git add [file name]  # 添加指定文件  例如 git add hello.txt
    

    提交

    git commit -m "commit message" [file name]  or git commit -m "commit message" # 有冲突是不带具体文件名
    将暂存区的内容提交到本地库
    

    查看历史记录

    • git log
    • git log --pretty=oneline
    • git log --oneline
    • git reflog

    根据log进行前进/后退

    本质

    基于索引值操作[推荐]

    git reset --hard [局部索引值]
    例如: git reset --hard a6ace91
    

    使用^符号: 只能后退

    git reset --hard HEAD^
    注: 一个^表示后退一步, n 个表示后退 n 步
    

    使用~符号: 只能后退

    git reset --hard HEAD~n
    注: 表示后退 n 步
    

    reset命令的三个参数对比

    • --soft参数
    仅仅在本地库移动 HEAD 指针
    
    • --mixed参数
    在本地库移动 HEAD 指针
    重置暂存区
    
    • ***--hard参数***
    在本地库移动 HEAD 指针
    重置暂存区
    重置工作区
    

    删除文件并找回

    前提: 删除前, 文件存在时的状态提交到了本地库。
    操作: git reset --hard [指针位置]
      删除操作已经提交到本地库: 指针位置指向历史记录
      删除操作尚未提交到本地库: 指针位置使用 HEAD
    

    比较文件差异

    git diff [文件名]
      将工作区中的文件和暂存区进行比较
    git diff [本地库中历史版本] [文件名]
      将工作区中的文件和本地库历史记录比较
    不带文件名比较多个文件
    

    分支操作

    创建分支

    git branch [分支名]

    查看分支

    git branch or git branch -v

    切换分支

    git checkout [分支名]

    创建并切换分支

    git checkout -b dev

    删除分支

    git branch -d dev

    合并分支

    第一步: 切换到接受修改的分支(被合并, 增加新内容) 上 git checkout [被合并分支名]
    第二步: 执行 merge 命令 git merge [有新内容分支名]
    

    解决冲突

    • 冲突的表现(合并分支是可能会产生冲突)
    • 冲突的解决
    第一步: 编辑文件, 删除特殊符号
    第二步: 把文件修改到满意的程度, 保存退出
    第三步: git add [文件名]
    第四步: git commit -m "日志信息"
            注意: 此时 commit 一定不能带具体文件名
    

    忽略文件

    • .gitignore windows上后面加个.就行了
    忽略文件
      - 空文件夹不被管理
      - 指定某些文件或者文件夹不被git管理
      - 在项目根路径,跟.git文件夹一个路径,新建.gitignore[.],在里面配置
    
      语法:
        # 号是注释, 没有用
        文件夹名字,表示文件夹忽略,不被管理
        /dist 表示根路径下的dist文件夹,不被管理
        *.py  表示后缀名为py的文件,都被忽略
        *.log*
    

    本地库和远程库

    • linux下查看隐藏的文件 ls -la 或者 ls -lA
    • 11-18号加------------------------------
    • linux下显示/不显示以.开头的隐藏文件 Ctrl + h
    • 团队内部协作
    • 跨团队协作

    创建远程库

    • 刚开始最好不要创建readme等文件,防止冲突

    创建远程库地址别名

    git remote -v 查看当前所有远程地址别名
    git remote add [别名] [远程地址]
    

    推送

    • 后面的分支是本地仓库的名字
      git push [别名] [本地分支名]

    克隆

    • 命令
      git clone [远程地址]
    • 效果
    完整的把远程库下载到本地
    创建 origin 远程地址别名
    初始化本地库
    

    团队成员邀请

    在setting 下的 collborator-->Add collaborator
    copy invite link给其他用户,其他用户登录并访问邀请链接
    
    

    拉取

    pull=fetch+merge
    git fetch [远程库地址别名] [远程分支名]
    git merge [远程库地址别名/远程分支名]
    
    git pull [远程库地址别名] [远程分支名]
    

    团队内部发生冲突

    如果不是基于 GitHub 远程库的最新版所做的修改, 不能推送, 必须先拉取。
    拉取下来后如果进入冲突状态, 则按照“分支冲突解决” 操作解决即可。
    

    跨团队协作

    1. 首先fork别人仓库
    2. 本地修改,然后推送到远程[自己的远程仓库]
    3. Pull Request
    • New pull request
    • Create pull request

    (团队人员)

    1. 查看Pull requests
    2. 交流
    3. 审核代码
    4. 合并代码(Merge pull request, confirm merge)
    5. 将远程库修改拉取到本地

    SSH登录

    step1: 进入当前用户的家目录
      $ cd ~
    step2: 删除.ssh 目录
      $ rm -rvf .ssh
    step3: 运行命令生成.ssh 密钥目录
      $ ssh-keygen -t rsa -C atguigu2018ybuq@aliyun.com
      [注意: 这里-C 这个参数是大写的 C]
    step4: 进入.ssh 目录查看文件列表
      $ cd .ssh
      $ ls -lF
    step5: 查看 id_rsa.pub 文件内容
      $ cat id_rsa.pub
    step6: 复制 id_rsa.pub 文件内容, 登录 GitHub, 点击用户头像→Settings→SSH and GPG keys
    step7: New SSH Key
    step8: 输入复制的密钥信息
    step9: 回到 Git bash 创建远程地址别名
      git remote add origin_ssh git@github.com:atguigu2018ybuq/huashan.git
    step10: 推送文件进行测试
    
  • 相关阅读:
    Atitit attilax要工作研究的要素 纪要 方案 趋势 方向 概念 理论
    Atitit 常见每日流程日程日常工作.docx v7 r8f
    Atitit it 互联网 软件牛人的博客列表
    Atitit 信息链(Information Chain)的概念理解 attilax总结
    Atitit 知识点的体系化 框架与方法 如何了解 看待xxx
    Atitit 聚合搜索多个微博 attilax总结
    Atitit 企业知识管理PKM与PIM
    Atitit 项目沟通管理 Atitit 沟通之道 attilax著.docx
    Atitit 项目管理软件 在线服务 attilax总结 1. 项目管理协作的历史 1 1.1. Worktile 406k 1 1.2. Teambition  584k in baidu
    Atitit.每周末总结 于每周一计划日程表 流程表 v8 import 上周遗漏日志补充 检查话费 检查流量情况 Crm问候 Crm表total and 问候
  • 原文地址:https://www.cnblogs.com/zranguai/p/15549640.html
Copyright © 2011-2022 走看看