• Git使用


    Git使用

    1. Fork 本仓库:
    • 通过HTTPS协议克隆:
    $ git clone http://SanJieJiYuanWelcomeYou.git
    
    • 1
    • 通过SSH协议克隆 :
    $ git clone ssh://git@SanJieJiYuanWelcomeYou.git
    
    • 1
    1. 拉取远程分支:
    $ git pull
    
    • 1

    或者

    $ git fetch origin master
    
    • 1
    1. 将文件添加到Git缓冲区 :
    $ git add .  
    
    • 1

    或某个具体文件:

    $ git add "readme.md"
    
    • 1

    回退git add文件:

    # 回退所有文件
    git reset HEAD
    
    # 回退部分文件,将file退回到unstage区
    git reset HEAD file
    
    • 1
    • 2
    • 3
    • 4
    • 5
    1. 查看仓库当前文件提交状态:
    $ git status
    $ git status -s
    
    • 1
    • 2
    1. 从Git的暂存区提交版本到仓库,参数-m后为当次提交的备注信息:
    $ git commit -m "1.0.0"
    
    • 1
    1. 提交代码, 将本地的Git仓库信息推送上传到服务器:
    $ git push http://SanJieJiYuanWelcomeYou.git
    
    • 1

    在新建仓库时,如果在 Gitee 平台仓库上已经存在 readme 或其他文件,在提交时可能会存在冲突,这时用户需要选择的是保留线上的文件或者舍弃线上的文件,如果您舍弃线上的文件,则在推送时选择强制推送,强制推送需要执行下面的命令(默认不推荐该行为):

    $ git push origin master -f
    
    • 1

    如果您选择保留线上的 readme 文件,则需要先执行:

    $ git pull origin master
    
    • 1
    1. 查看git提交的日志 :
    $ git l
    
    • 1
    1. 查看本地分支
    # 查看一下现在的分支状态,
    # 星号(*)表示当前所在分支
    git branch
    
    # 查看全部分支
    git branch -a
    
    # 查看状态:
    $ git status
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    1. 分支设置
    # 切换本地分支
    git checkout [分支名称]
    # 新建本地分支 feat-segmenter,执行该指令后,
    #会在本地创建一个新分支,该分支是从当前分支上检出的,
    #所以所有文件内容都和当前分支一模一样
    git checkout -b feat-segmenter
    # 从远程仓库里拉取一条本地不存在的分支
    git checkout -b 本地分支名 origin/远程分支名
    
    # 设置本地分支对应的远程分支 Set upstream when pushing to remote
    git push -u origin feat-segmenter
    git push --set-upstream origin 分支名
    git push <远程主机名> <本地分支名>:<远程分支名>
    git push -u origin dev:release/caigou_v1.0
    git push -u origin curb_segment:feat-segmenter
    
    
    # 可以在本地分支在第一次push时设置远程分支。可以通过选项-u或——set-upstream为每个更新或推送的分支设置远程引用。
    # Set upstream without pushing it
    # with option -u / --set-upstream-to
    git branch -u origin/feat-segmenter
    git branch --set-upstream-to=origin/feat-segmenter
    # 查看是否切换
    git config --list
    
    # 取消分支设置
    git branch --unset-upstream [<branchname>]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    把新建的本地分支push到远程服务器,远程分支与本地分支同名:

    $ git push origin 分支名:分支名
    
    • 1
    1. 参数配置
    git config --global user.name "qianchengjun"
    git config --global user.email "qianchengjun@faw.com.cn"
    git config --list
    # 配置完要初始化以下
    git init
    
    • 1
    • 2
    • 3
    • 4
    • 5
    1. 设置公钥
    ssh-keygen
    cat ~/.ssh/id_rsa.pub
    
    • 1
    • 2
    1. 删除远程分支
    # 简单方式,推送一个空分支到远程分支,其实就相当于删除远程分支:
    $ git push origin :localbranch
    
    # 或者
    $ git push origin --delete localbranch
    
    这两种方式都可以删除指定的远程分支
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    1. 删除本地分支
    // 删除本地分支,不能删除当前所在分支,必须先切换出去再删除
    git branch -d [分支名称]
    
    • 1
    • 2
    1. git rm 与 git reset的区别

      命令用途
      git rm用于从工作区和暂存区中删除文件,删除暂存区和分支上的文件,同时工作区也不需要
      git rm --cached file_path删除暂存区或分支上的文件, 但工作区需要使用, 只是不希望被版本控制(适用于已经被git add,但是又想撤销的情况)
      git reset用于将当前HEAD复位到指定状态, 回退暂存区里的文件。一般用于撤消之前的一些操作(如:git add,git commit等)。
    2. git stash

    该命令会保存当前工作进度,会把暂存区和工作区的改动保存到一个未完结变更的堆栈中;运行git status后,会发现当前分支是一个干净的工作区,没有任何改动。

    1. git stash 是本地的,不会上传到服务器上;
    2. 可以通过使用git stash save 'message...'可以添加一些注释。

    git help stash查看定义及用法

    GIT-STASH(1)                                     Git Manual                                    GIT-STASH(1)
    
    NAME
         # 能够将所有未提交的修改(工作区和暂存区)保存至堆栈中,用于后续恢复当前工作目录。
           git-stash - Stash the changes in a dirty working directory away 
    
    SYNOPSIS
         # 查看当前stash中的内容
           git stash list [<options>]
           # 查看堆栈中最新保存的stash和当前目录的差异。
           git stash show [<stash>]
           # 从堆栈中移除某个指定的stash
           git stash drop [-q|--quiet] [<stash>]
           # git stash pop 将当前stash中的内容弹出,并应用到当前分支对应的工作目录上。 
           git stash ( pop | apply ) [--index] [-q|--quiet] [<stash>]
           # 恢复指定的进度到工作区
           git stash pop stash@[stash_id]
           # 从最新的stash创建分支。 
           git stash branch <branchname> [<stash>]
           git stash [push [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]
                        [-u|--include-untracked] [-a|--all] [-m|--message <message>]
                        [--] [<pathspec>...]]
           # 清除堆栈中的所有 内容
           git stash clear
           git stash create [<message>]
           git stash store [-m|--message <message>] [-q|--quiet] <commit>
    
    DESCRIPTION
         当您想记录工作目录和索引的当前状态时,请使用 git stash,但是想要回到一个干净的工作目录。该命令会保存您的本地修改并恢复工作目录以匹配 HEAD 提交。
    
           这个命令隐藏的修改可以用 git stash list 列出,用 git 检查stash 显示,并使用 git stash apply 恢复(可能在不同的提交之上)。调用不带任何参数的 git stash 等同于 git stash push。默认情况下,存储被列为“WIP on branchname ...”,但您可以在命令行上给出更具描述性的消息创建一个。
    
           您创建的最新存储存储在 refs/stash 中;在此的 reflog 中发现了较旧的 stash引用并且可以使用通常的 reflog 语法命名(例如 stash@{0} 是最近的创建 stash,stash@{1} 是它之前的那个,stash@{2.hours.ago} 也是可能的)。藏匿处可能也可以通过仅指定存储索引来引用(例如,整数 n 等价于藏匿@{n})。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
  • 相关阅读:
    代码中的软件工程:正则表达式十步通关
    java计算机毕业设计springboot+vue城市轨道交通线路查询系统
    c++八股文:c++面向对象
    word交叉引用的使用
    信道分类 | 信道
    react实战系列 —— react 的第一个组件
    零基础学Java第五节(面向对象一)
    Doris 提供了完善的 Profile 机制
    python读文件如何不换行,以及python写文件后怎么换行
    【云原生K8S】Kubernetes对接harbor私人仓库
  • 原文地址:https://blog.csdn.net/moneymyone/article/details/126002212