首页 > 其他分享 >Git 命令

Git 命令

时间:2023-05-27 23:00:29浏览次数:29  
标签:Git 仓库 命令 git -- 远程 分支

前置知识

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目,同时它不必服务器端软件支持,可以离线操作

  • Workspace:工作区
  • Index / Stage:暂存区
  • Repository:仓库区(或本地仓库)
  • Remote:远程仓库

Git 配置

Git 提供了一个叫做 git config 的工具,专门用来配置或读取相应的工作环境变量。这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方:

  • /etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件
  • ~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 --global 选项,读写的就是这个文件
  • 当前项目的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件):这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量
  • 配置个人的用户名称和电子邮件地址
    • git config --global user.name "username"
      git config --global user.email "your email"
  • 如果要在某个特定的项目中使用其他名字或者邮件,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里
  • 检查已有的配置信息,可以使用 git config --list 命令

Git 基本操作

git init 初始化仓库

Git 使用 git init <repository> 命令来初始化一个 Git 仓库,在执行完成命令后,Git 仓库会生成一个 .git 目录,该目录包含了资源的所有元数据,其他的项目目录保持不变

参数说明:

  • repository 本地仓库名称
#在当前目录下初始化仓库,使用如下语句
git init

#指定目录中初始化仓库,使用如下语句
git init repository-name

文件的追踪(add)和提交(commit)

所有的版本控制系统,只能跟踪文本文件的改动,比如txt文件,网页,所有程序的代码等,版本控制系统可以告诉你每次的改动,但是图片,视频这些二进制文件,虽能也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来

如果当前目录下有几个文件想要纳入版本控制,需要先用 git add <fileName> 命令告诉 Git 开始对这些文件进行跟踪并存放到暂存区,然后使用 git commit -m 提示语 提交,此时文件存放在本地仓库

#添加追踪的文件到暂存区,如追踪readme.md。添加所有可以使用 git add .
git add readme.md

#提交文件到本地仓库
git commit -m "新增readme.md文件"

注: 在 Linux 系统中,commit 信息使用单引号 ,Windows 系统,commit 信息使用双引号 


查看文件的状态(status)和差异(diff)

git status 命令用于查看在上次提交之后是否有对文件进行再次修改

git diff 命令比较文件的不同,即比较文件在暂存区和工作区的差异

#显示暂存区和工作区的差异,fileName可有可无
git diff <fileName>

#显示暂存区和上一次提交的差异
git diff --cached fileName

 

 


 拉取远程仓库代码到本地(clone)

使用 git clone <remote address> <directory> 从远程 Git 仓库中拷贝项目到本地仓库中

参数说明:

  • remote address:远程 Git 仓库地址
  • directory:本地仓库
#拉取远程Git仓库到本地
git clone https://gitee.com/web-socket.git

#拉取远程Git仓库到本地指定的仓库
git clone https://gitee.com/web-socket.git webSocket

回退版本(reset)

git reset 命令用于回退版本,可以指定退回某一次提交的版本

语法为 git reset [--hard] [HEAD]

参数说明:

  • --hard:参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交
  • HEAD 说明:

    • HEAD 表示当前版本

    • HEAD^ 上一个版本

    • HEAD^^ 上上一个版本

    • HEAD^^^ 上上上一个版本。以此类推即可

    • 使用数值表达回退的版本:HEAD~数值 ,其中数值从0开始,0表示当前版本,1表示上一个版本,以此类推
#把当前的版本回退到上一个版本
git reset --hard HEAD^

#把当前的版本回退到指定的版本号。先试用reflog获取版本号,通过版本号回退
git reflog
git reset --hard 版本号

#指定文件回退到指定的版本号
git reset HEAD^ 文件名

回退单个文件(checkout)

当一个文件在某次发现修改错误了并已经提交到远程仓库了,但分支的HEAD已经走了好远了,此时可以使用 git checkout 命令进行检出提交前的内容进行还原  

  1.  先使用 git log 文件路径 查看这个文件的提交版本号
  2. 使用 git checkout 提交版本号 文件路径 进行检出这个提交版本前的记录


查看提交历史日志(log)

查看提交历史常用的两个命令

  • git log 查看历史提交记录
    • 参数说明
      • --oneline 选项来查看历史记录的简洁的版本
      •  --graph 选项,查看历史中什么时候出现了分支、合并
      • --reverse 参数来逆向显示所有日志
      • --author 查找指定用户的提交日志
  • git blame <file> 以列表形式查看指定文件的历史修改记录
# 查看所有文件提交日志
git log

# 查看指定文件的提交日志
git blame test.java

# 查看历史记录的简洁的版本
git log --oneline

 远程仓库的操作(remote)

  1.  显示所有远程仓库 git remote -v
    1. 注:origin 表示远程地址的别名   
  2. 显示某个远程仓库的信息 git remote show 远程仓库地址 
  3.  向本地库中添加远程版本库,主要用于初始建立项目时使用的 git add remote 本地的版本库 远程仓库地址 ---- 用的比较多
    1. # 创建本地git仓库(若存在本地git仓库,直接添加远程仓库关联即可)
      mkdir text-git
      cd text-git
      #初始化git仓库
      git init 
      touch README.md
      git add README.md
      git commit -m "first commit"
      #新增远程仓库的关联
      git remote add origin https://gitee.com/text-git.git
      git push -u origin master
  4.  删除远程仓库 git remote rm 仓库名
  5.  修改远程仓库名 git remote rename 旧的仓库名 新的仓库名 

获取远程仓库代码(pull)

从远程获取代码并合并本地的版本 git pull <远程主机名> <远程分支名称>:<本地分支名称> 如果本地分支名与远程分支名相同,则可以省略冒号后面部分

# 拉取远程的dev分支
git pull origin dev

#将远程主机 origin 的 dev 分支拉取过来,与本地的 feature-xf 分支合并
git pull origin dev:feature-xf
#如果远程分支是与当前分支合并,则冒号后面的部分可以省略
git pull origin feature-xf

向远程仓库推送代码(push)

将本地的分支版本上传到远程并合并 git push <远程主机名> <远程分支名称>:<本地分支名称> 如果本地分支名与远程分支名相同,则可以省略冒号后面部分

  • 强制推送可以使用 --force 参数
#将本地的 feature-xf 分支代码向远程仓库 dev 分支推送
git push origin dev:feature-xf

#将本地的 dev 分支代码向远程仓库 dev 分支推送
git push origin dev

# 如果本地版本与远程版本有差异,但又要强制推送可以使用 --force 参数
git push --force origin dev

分支管理(branch)

使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。Git 分支实际上是指向更改快照的指针

  1.  列出本地所有分支 git branch
  2. 创建分支 git branch 分支名 
  3.  切换分支 git checkout 分支名 
  4. 删除分支 git branch -d 分支名 

切换分支(checkout)

git checkout命令可以切换通过git branch命令创建的分支。checkout一个分支,会更新当前的工作空间中的文件,使其与检出分支的commit版本状况保持一致。这之后工作区中的所有变更都会被记录在checkout出来的那个分支上

  1.  切换一个存在的分支 git checkout 分支名 
  2.  创建并切换分支 git checkout -b 分支名

合并分支(merge)

将两个或两个以上的开发历史合并一起 git merge 分支名

#合并分支dev和bug01在当前分支master的顶部,使它们合并
git merge dev bug01

#将分支dev合并到分支master中,自动进行新的提交---需要先切换到master分支再合并
git checkout master
git merge dev

隐藏操作(Stash)

假设正在为产品新的功能编写/实现代码时,突然出现软件bug。这时必须将新编写的功能代码保留几个小时然后去处理bug的问题。在这段时间内不能提交代码,也不能丢弃的代码更改。 所以需要一些临时等待一段时间,可以存储部分更改(运行git stash命令),然后再提交它

  1.  保存工作区修改的内容 git stash
  2.  查看已存在更改的列表 git stash list
  3.  恢复工作区的修改内容 git stash pop


Git 命令大全


Git 常用的图形化界面和版本控制器

  • SourceTree 常用的git图形化管理界面,免费好用
  • Gitlab 公司常用的远程代码仓库管理器---得要学会用

标签:Git,仓库,命令,git,--,远程,分支
From: https://www.cnblogs.com/52-IT-y/p/17426622.html

相关文章

  • AWC命令预制
    1、控制命令在wsgTableTestPage子位置下才会显示"conditions":{"enableWsgCreateLBJTestButton":{"expression":"ctx.locationContext['ActiveWorkspace:SubLocation']==='wsgTableTestPage'"......
  • Linux 常用命令大全【yyds干货盘点4】
    1. 文本处理catfile1file2...|command<>file1_in.txt_or_file1_out.txtgeneralsyntaxfortextmanipulationusingPIPE,STDINandSTDOUTcatfile1|command(sed,grep,awk,grep,etc...)>result.txt合并一个文件的详细说明文本,并将简介写入一个新文件中ca......
  • Dos常用命令
    Dos命令打开CMD的方式:win+rDos常用命令盘符切换:盘符+冒号查看当前目录下所有目录:dir此处想在退回c盘方式:c:cd/dc:跨盘符进入目录:cd/d要跨的盘符:目录返回上一级:cd..进入下一级目录:cd+目录名称清理屏幕:cls退出终......
  • 记录一个命令 可以在linux很方便的安装一些软件
    小鱼的一键安装系列wgethttp://fishros.com/install-Ofishros&&.fishros一键安装:ROS(支持ROS和ROS2,树莓派Jetson)贡献@小鱼一键安装:VsCode(支持amd64和arm64)贡献@小鱼一键安装:github桌面版(小鱼常用的github客户端)贡献@小鱼一键安装:nodejs开发环境(通过nod......
  • picgo+github搭建图床,配合typora使用
    picgo下载地址:https://github.com/Molunerfinn/PicGo/releases创建一个仓库,老的也行分支的话看看仓库里的分支是什么就填写什么token的设置typroa整合......
  • Git 学习笔记
    笔记来源视频链接:黑马程序员Git全套教程,完整的git项目管理工具教程,一套精通git_哔哩哔哩_bilibiliGit基础命令操作(本地仓库)配置用户名和Email右键打开GitBash:gitconfig--globaluser.name"用户名"gitconfig--globaluser.email"邮箱地址"Git结构1.创建本地......
  • tracer ftrace笔记(17)——atrace命令抓trace
    一、atrace命令解析1.帮助信息#atrace-h用法:usage:atrace[options][categories...]选项包括:-aappname为逗号分隔的cmdlines列表启用应用程序级跟踪;*是匹配任何进程的通配符-bN使用大小为NKB的跟踪缓冲区-c......
  • 源代码管理工具——GitHub
    GitHub——敏捷开发,CI/CD的倡导者和受益者1.简介GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。Github拥有1亿以上的开发人员,400万以上组织机构和3.3亿以上资料库。2.发展历程GitHub平台于2007年10月1日开始开发,由GitHu......
  • gitee 流水线部署go程序
    1、在gitee上新建gotest项目,为了方便演示,main.go代码简略如下packagemainfuncmain(){println("helloworld")}2、编写makefile文件3、创建流水线,选择go项目4、修改部署规则5、测试运行,看到最后输出了go程序的输出helloworld,说明部署成功......
  • PyCharm:PyCharm常用快捷命令
    为了提高编写代码的速度,以及方面程度,需要知道一些常用的快捷键。最常用的是:1.ctrl+c复制2.ctrl+d快速复制选中的内容并粘贴3.Ctrl+shift+n通过文件名快速查找工程内的文件4.ctrl+a全选5.Ctrl+alt+l调整代码格式6.Alt+enter导入模块7.Ctrl+z回退8.ctrl+x剪贴9.ctrl+/......