首页 > 其他分享 >Git大全

Git大全

时间:2024-03-13 14:33:47浏览次数:31  
标签:git 暂存区 dev Git master 提交 大全 分支

Git

搁置

对应git stash

Shelf的地方,译为架子,Unshelve可以取消搁置,

当我们需要切换分支,但又不想提交代码时,可以将改动搁置,检出之后再回来 在git-Shelf可以看到搁置代码,使用Unshelve取消搁置还原代码

git stash pop

当然如果不需要了可以删除搁置的代码,删除后会进入Recently Deleted,防止误删

暂存

对应git add

添加到暂存区之后,检出分支是会丢失没有提交的代码的。。。

git stash 和 git add 的区别及使用技巧_git stash和git add区别-CSDN博客

restore和reset

restore是将暂存区的改动丢弃,未跟踪的文件restore之后不会受影响

GIT中reset, restore and revert指令的区别_git restore-CSDN博客

Git命令

  • Git是免费、开源的分布式版本控制系统
  • 用户即使离线也可以本地提交,push推送到远程服务器才需要联网。

Git工作流程

推拉

认识git工作区域:

  1. 工作空间:电脑本地看到的文件和目录,在git的版本控制下就形成了工作空间
  2. 暂存区,临时存放你未提交的改动,.git目录下,比如:git add
  3. 本地仓库:git clone之后就是把远程仓库克隆到本地仓库
  4. 远程仓库:github、gitee、gitlab这些

红色:没有提交到暂存区,不在版本控制范围之内

绿色:add之后没有提交,在暂存区

蓝色:修改过的文件,提交之后变为正常颜色

git status  查看当前状态
git log  查看提交日志
git merge dev  合并dev分支至当前分支
git add .      添加当前目录全部文件至暂存区
git commit -m '测试'     提交,提交信息为测试
git push origin master  推送至远端分支(master为需要推送分支,按实际需要选择)
git pull origin master  合并远端分支至本地 (git pull 等于 git fetch + git merge)
git pull --rebase origin master rebase方式合并远端分支至本地
git branch 查看当前分支
git branch dev 创建dev分支  (dev可选)
git branch -d dev 删除dev分支
git branch -r 查看远程分支
git branch -a 查看所有分支 (包括远程分支)
git checkout master 切换至master分支
git checkout -b dev 创建dev分支并切换至dev分支
git checkout -b dev origin/dev 创建远程分支到本地
git restore file 丢弃工作区修改(file为具体文件名称)
git restore * 丢弃所有工作区修改
git restore --staged file  回退暂存区文件 不会更改文件内容
git rebase --continue   rebase后继续操作
git rebase --abort 退出rebase 操作

基础操作

拉取指定分支:git pull http://117.73.11.3:8090/WindPowerPrediction-server/wpp-web.git zz_develop

  1. 克隆远程版本库
    相当于idea从VCS拉取代码
git clone url  克隆远程版本库
git clone -b  <指定分支名>  <ssh或者http地址>
git init   初始化git仓库,将工作目录交给git管理,会生成一个.git版本库文件
git remote add origin https://github.com/vuejs/vue.git 指定仓库地址,将远程仓库指定为origin
  1. 创建开发分支并切换
    相当于idea新建分支
git checkout -b dev2  新建一个分支,并且切换到新的分支dev2
git branch dev2 新建一个分支,但是仍停留在原来分支
  1. git add的使用格式
    相当于idea将文件交给git管理
git add .   添加当前目录的所有文件到暂存区
git add [dir]   添加指定目录到暂存区,包括子目录
git add [file1] 添加指定文件到暂存区
  1. git commit的使用格式
    相当于idea打包提交
git commit -m [message] 提交暂存区到仓库区,message为说明信息
git commit [file1] -m [message] 提交暂存区的指定文件到本地仓库
git commit --amend -m [message] 使用一次新的commit,替代上一次提交
  1. git status
    相当于idea文件颜色表示是否修改/新建?
git status  查看当前工作区暂存区变动
git status -s  查看当前工作区暂存区变动,概要信息
git status  --show-stash 查询工作区中是否有stash(暂存的文件)
  1. git push的使用格式
    git push origin <指定的分支名> -f
    -f可选,表示强行推送

    git push <远程主机名> <本地分支名>:<远程分支名>
    
  2. git log
    相当于idea查看提交历史

git log  查看提交历史
git log --oneline 以精简模式显示查看提交历史
git log -p <file> 查看指定文件的提交历史
git blame <file> 一列表方式查看指定文件的提交历史
  1. git diff
    相当于idea比较差异
git diff 显示暂存区和工作区的差异
git diff filepath   filepath路径文件中,工作区与暂存区的比较差异
git diff HEAD filepath 工作区与HEAD ( 当前工作分支)的比较差异
git diff branchName filepath 当前分支的文件与branchName分支的文件的比较差异
git diff commitId filepath 与某一次提交的比较差异
  1. git pull/git fetch
git pull  拉取远程仓库所有分支更新并合并到本地分支。
git pull origin master 将远程master分支合并到当前本地master分支
git pull origin master:master 将远程master分支合并到当前本地master分支,冒号后面表示本地分支
// pull就是fetch和merge的组合
git fetch --all  拉取所有远端的最新代码
git fetch origin master 拉取远程最新master分支代码

分支操作

查看分支

git branch    查看本地所有的分支
git branch -r  查看所有远程的分支
git branch -a  查看所有远程分支和本地分支

删除分支

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

切换分支

git checkout master 切换到master分支

合并分支

git merge master  在当前分支上合并master分支过来
git merge --no-ff origin/dev  在当前分支上合并远程分支dev
git merge --abort 终止本次merge,并回到merge前的状态

撤销回退

git checkout

如果文件还在工作区,还没添加到暂存区,可以使用git checkout撤销;这也是为什么切换分支的时候一定要记得提交commit一下,因为checkout有可能撤销掉刚写的代码

git checkout [file]  丢弃某个文件file
git checkout .  丢弃所有文件

git reset

git reset的作用是修改HEAD的位置,即将HEAD指向的位置改变为之前存在的某个版本.回退之后后面的版本就会没有了

将暂存区的文件取消暂存或切换到指定版本

git revert

与git reset不同的是,revert复制了那个想要回退到的历史版本,将它加在当前分支的最前端。

git remote

// 列出每个远程服务器的简称 origin
git remote
// -v查看详细信息
git remote -v

分支合并

// 将xx分支合并到当前分支中去
git merge <xx分支>
rebase

rebase好处是: 获得更优雅的提交树,可以线性的看到每一次提交,并且没有增加提交节点。所以很多时候,看到有些伙伴都是这个命令拉代码:git pull --rebase

冲突解决

两个分支同一个文件里面的代码不一样,如果合并就会冲突。

标签:git,暂存区,dev,Git,master,提交,大全,分支
From: https://www.cnblogs.com/code-jia/p/18070570

相关文章

  • 如何配置极狐GitLab Runner Cache 缓存
    本文作者:徐晓伟GitLab是一个全球知名的一体化DevOps平台,很多人都通过私有化部署GitLab来进行源代码托管。极狐GitLab是GitLab在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。极狐GitLabRunnerCache缓存支持S3标准协议,如:OSS、OOS等等支持S3......
  • 经济指标涨跌逻辑大全
    cpi:consumerpriceindexCPI=(一组固定商品按当期价格计算的价值)除以(一组固定商品按基期期价格计算的价值)乘以100消费者物价指数,是反映一定时期内城乡居民所购买的生活消费品和服务项目价格变动趋势和程度的相对数,是对城市居民消费价格指数和农村居民消费价格指数进行综合......
  • git
    git常用命令创建SSHKey$ssh-keygen-trsa-C"[email protected]"测试SSHKEY配对成功[email protected]配置用户信息$gitconfig--globaluser.name"YourName"      $gitconfig--globaluser.email"[email protected]"仓库在当......
  • npm启动vue项目报错error:0308010C:digital envelope routines::unsupported的解决办
    错误截图解决方法package.json文件中修改dev项为setNODE_OPTIONS=--openssl-legacy-provider&vue-cli-serviceserve:"scripts":{"dev":"setNODE_OPTIONS=--openssl-legacy-provider&vue-cli-serviceserve","build:prod......
  • Git传输协议的对比分析
    Git有四种主要的协议来传输资料:1)本地协议(Local);2)HTTP协议;3)SSH(SecureShell)协议;4)Git协议;其中,本地协议由于目前大都是进行远程开发和共享代码所以一般不常用,而Git协议由于缺乏授权机制且较难架设所以也不常用。最常用的便是SSH和HTTP(S)协议。HTTP(S)优缺点优点一:相对于SSH协议,可以使用......
  • SqlServer函数大全三十八:DATEPART函数
    在SQLServer中,DATEPART 函数用于返回日期/时间值的指定部分的整数。与 DATENAME 函数不同,DATEPART 返回的是一个数字,而不是一个字符串。这对于需要进行数学计算或比较的场合特别有用。函数的语法如下:sql复制代码DATEPART(datepart,date)其中:datepart 是你想......
  • SqlServer函数大全三十九:CONVERT函数
    在SQLServer中,CONVERT 函数用于将一种数据类型转换为另一种数据类型。这在处理日期、时间、数字和其他数据类型时非常有用,尤其是当你需要确保数据以特定的格式或类型进行存储或显示时。函数的语法如下:sql复制代码CONVERT(data_type[(length)],expression[,style])......
  • SqlServer函数大全三十五:DATEDIFF(返回日期和时间的边界数)函数
    在SQLServer中,DATEDIFF 函数用于返回两个日期之间的边界数差异。这个函数可以计算两个日期之间的年、月、日、小时、分钟、秒或周数差异。DATEDIFF 函数的语法如下:sql复制代码DATEDIFF(datepart,startdate,enddate)datepart 是指定要返回日期部分的参数,比如......
  • docker-compose 部署gitlab
    主机ip:192.168.1.139[root@localhostgitlab_docker]#catdocker-compose.ymlversion:'3.1'services:gitlab:image:'gitlab/gitlab-ce:latest'container_name:gitlab#随着docker重启自动启动restart:alwaysenvironment:......
  • 工作中用到的一些git操作(持续更新)
    绑定远程gitgitremoteaddupstreamhttps://xxx.gitgitpullupstreammaster 通过命令指定upstream:比如,当前代码仓跟踪了两个upstream:$gitremote-vnisssh://[email protected](fetch)nisssh://[email protected](push)originssh://[email protected](fetch)originssh:......