• git命令使用


    2018-4-4 12:02:31 星期三 

    git常用操作流程简介:

    如果本地有一个文件被修改了, 

    一, 如果我们希望保存这个更改, 那就执行命令: git add, 就会把修改后的整个文件拷贝压缩存储起来(即生成快照), 它存储到了本地的"暂存区"

    二, 如果我们确定这个修改没问题了, 希望保存为项目的一部分, 那就执行git commit 命令, 就会保存到本地分支上去, 这一步会生成一系列对象,

      这些对象保存的信息有:

      1. 因为源文件被修改而生成的备份文件;

      2. 当前项目或分支中所有最新文件的链接(以树形存储, 区分他们的层级关系),

      3. 提交者的信息, 注释信息, 以及上一个提交保存的信息的地址等

    三, 如果我们希望我的修改被其他同事知道, 就执行git push命令, 把本地更改的信息推送到远程版本库, 跟它合并

    概念:

    Tag:  git 每一次提交都会生成一个40位hash的哈希值, 它关联了一个当时项目所有最新文件的连接, 因为这个hash值不好记, 所以可以用tag 命令生成一个好记得名字, 因此一个tag名对应一个commit

    分支:  分支就是指向某一次commit的链接/指针, 分支名就是指针的名字

      比如你以master分支为蓝本创建一个分支dev, 那这个dev里的所有文件地址其实都是指向master里的文件,

      然后你对其中的某些文件进行修改, 修改后, 如果执行的commit命令, 那么会把这些被修改的文件生成一个副本, 它保存了修改后的最终内容, 但master里的这个文件还原来的文件内容, 而dev中没有被修改的文件依旧指向master中的对应文件 (可以理解为写时复制)

      现在dev就不再指向master对应的那一堆文件了, 而是指向了包裹了新生成的备份文件和没有修改的文件的链接(注意不是文件内容而是它的链接)

    快速合并:  如果dev分支包含了最新的内容, master只是他的一个子集, 那么快速合并, 就是简单的将master指针指向dev指针

    参考: 

    git基础概念

    git分支

    git快照

    2015-07-15 11:59:11

    全局设置

    git config --global user.name "username" //用户名

    git config --global user.email email //邮箱

    git config --global credential.helper store  //记住密码

    git config --list //查看配置信息

    ssh-keygen -t rsa -C "abc@efg.com" // -C 注释

    git pull : 相当于 SVN up

    git status : 相当于 SVN st

    git add a.txt: 新添加文件 或者 将文件修改保存到索引中, 和SVN add的作用一样

    git checkout -- a.txt : 忽略本地对a.txt的更改, 将其改回之前的版本 (注意两个减号)

    git commit a.txt : 提交到本地存储

    git push : 提交到远程版本库中, 相当于 SVN ci

     

    查看本地分支: git branch

    查看远程分支: git branch -r

    查看本地和远程分支: git branch -a

    删除本地分支: git branch -D <branchName>

    删除远程分支: 

        方法一: git push origin --delete <branchName>

        方法二: git push origin :<branchName>

    本地新建了分支, 需要同步到远程版本库中, 让其它小伙伴看到

    git push origin 本地分支名:远程分支名

    从远程检出分支到本地作为新的本地分支

    git checkout -b 本地分支名 origin/远程分支名

    pull强制覆盖本地改变

    git fetch --all

    git reset --hard origin/master

    设置本地分支与远程分支关联

    git branch --set-upstream debug origin/debug (已废弃)

    git branch --track origin/serverfix

    git push --set-upstream debug origin/debug  (推送到远程, 并跟踪, 没有就创建)

    git checkout --track origin/branch_name (从远程拉下来, 在本地新建分支, 并跟踪) (参考)

    设置存储密码

    [credential]
    helper = store --file /mnt/thumbdrive/.git-credentials
    helper = cache --timeout 30000

    查看日志:

    git log --pretty=oneline (单行查看日志)

    查看敲过的命令

    git reflog

    对比当前工作区与上一个版本的差异

    git diff --name-status HEAD~1

    输出举例:

    A       aa
    M       test.log.bak
    D       test1.log.bak

    git clone 直接带上用户名密码:

    git clone http://username:password@remote

    git reset HEAD  //把暂存区的改动都撤回到工作区

    git checkout . //把工作区的改动都撤销, 使代码变为改动之前的

    git reflog show --date=iso master 查看master分支的各种事件的时间

    git diff cc3bdd82 b359916f --stat  统计两次提交之间的文件变化

    ##在有文件的目录中初始化git仓库, 并与远程仓库合并

    参考

    #git init

    #git add .

    #git commit -m "init" 

    #git remote add origin  git@git.xxxxxx 

    #git pull origin master --allow-unrelated-histories

    #git push --set-upstream origin

    ## 获取tag列表

    正序:  git for-each-ref refs/tags --sort=taggerdate --format '%(refname)'

    倒序:  git for-each-ref refs/tags --sort=-refname --format='%(refname)'

  • 相关阅读:
    算法:基于分布的排序算法
    剑指offer:镜像二叉树
    算法:基于比较的排序算法
    LeetCode做题笔记-135
    初识YOLO
    PHP课设图览
    浅谈C语言整型与浮点型转换
    SQL Server EXPRESS 安装
    2020CCPC 东北四省(区域)赛题目一览
    2020CCPC 黑龙江省赛题目一览
  • 原文地址:https://www.cnblogs.com/iLoveMyD/p/4648026.html
Copyright © 2020-2023  润新知