Git使用

发布于:2022-07-26 ⋅ 阅读:(520) ⋅ 点赞:(0)

Git使用

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

或者

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

或某个具体文件:

$ git add "readme.md"

回退git add文件:

# 回退所有文件
git reset HEAD

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

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

$ git push origin master -f

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

$ git pull origin master
  1. 查看git提交的日志 :
$ git l
  1. 查看本地分支
# 查看一下现在的分支状态,
# 星号(*)表示当前所在分支
git branch

# 查看全部分支
git branch -a

# 查看状态:
$ git status
  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>]

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

$ git push origin 分支名:分支名
  1. 参数配置
git config --global user.name "qianchengjun"
git config --global user.email "qianchengjun@faw.com.cn"
git config --list
# 配置完要初始化以下
git init
  1. 设置公钥
ssh-keygen
cat ~/.ssh/id_rsa.pub
  1. 删除远程分支
# 简单方式,推送一个空分支到远程分支,其实就相当于删除远程分支:
$ git push origin :localbranch

# 或者
$ git push origin --delete localbranch

这两种方式都可以删除指定的远程分支
  1. 删除本地分支
// 删除本地分支,不能删除当前所在分支,必须先切换出去再删除
git branch -d [分支名称]
  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})。