当前位置: 首页 > news >正文

Git 常用命令

git 配置

配置文件位置: ~/.gitconfig

配置用户

git config --global user.name "username"
git config --global user.email "email@example.com"
复制代码

生成 ssh-key

生成的秘钥和公钥在本机位置:~/.ssh (id_rsa:私钥;id_rsa.pub:公钥)

公钥可添加到 github 等类似托管平台,以便能够使用远程仓库

ssh-keygen -t rsa -C "email@example.com"
复制代码

git别名(参考zsh)

macOSlinux 可安装 zshoh-my-zsh

以下为 .gitconfig 内容

使用:git glods git glola

[user]
	name = ***
	email = ***
[alias]
	glods = log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short
	glola = log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --all
复制代码

git 常用命令

clone

将远程仓库拉取到本地

git clone url
复制代码

add

将修改的内容添加到暂存区

git add fileName    #单个文件
git add .           #多个文件

复制代码

commit

提交描述

git commit                 #进入编辑器编辑提交描述,比如默认的 vim
git commit -m "提交描述"    #在命令行添加提交描述
git commit --amend         #修改上一个提交(commit)描述
复制代码

checkout

撤销工作区的修改、分支管理

git checkout -- fileName                        #撤销工作区单个文件的修改
git checkout -- .                               #撤销工作区所有文件的修改
git checkout branchName                         #切换到分支 branchName
git checkout -b branchName                      #创建分支 branchName 并切换到该分支
git checkout -b branchName commit_id/tag        #以 commit_id/tag 为最后一次提交新建一个分支 branchName,并切换到该分支
git checkout -b branchName origin/branchName    #将远程分支 origin/branchName 同步到即将创建的分支 branchName
复制代码

pull

拉取远程分支到本地并与本地

git pull origin branchName             #拉取远程分支 branchName 到本地并合并:git pull = git fetch + git merge
git pull origin branchName --rebase    #(推荐该方式,使得提交树干净整洁,无多余无用的commit)拉取远程分支 branchName 到本地并进行变基操作:git pull = git fetch + git rebase

复制代码

push

将本地提交同步到远程分支,同步之前最好执行 git pull origin branchName --rebase ,保持与远程分支内容一致后再同步

git push origin branchName                  #将本地分支推送到远程分支
git push origin branchName --follow-tags    #把 commit_id 所引用的标签一起推送到远程仓库
git push origin tagName                     #将标签 tagName 推送到远程仓库
git push origin --tags                      #一次推送所有本地新增的标签
git push origin --delete branchName         #删除远程分支
复制代码

fetch

拉取远程分支更新到本地

git fetch origin branchName                 #将远程分支 branchName 更新的内容同步到本地的分支 `origin/branchName`
git fetch origin branchName1:branchName2    #将远程分支 branchName1 的更新同步到本地分支 branchName2 ,若本地分支不存在,则自动创建

复制代码

branch

分支管理

git branch branchName                      #创建分支 branchName
git branch -d branchName                   #删除已经合并到本分支的其他分支
git branch -D branchName                   #(强制删除)删除未合并到本分支的其他分支
git branch branchName commit_id/tag        #以 commit_id/tag 为最后一次提交新建一个分支 branchName
git branch branchName origin/branchName    #创建一个新分支 branchName 同步远程分支 origin/branchName 的信息
复制代码

stash

将工作区修改的内容储藏起来,只会储藏 git add 之后的文件的修改,新添加的文件不会被 git 管理

git stash                    #储藏工作区修改
git stash list               #显示储藏列表
git stash pop/apply          #应用储藏列表最上面一个到工作区
git stash apply stash@{2}    #应用指定储藏到工作区
git stash clear              #清空储藏列表
复制代码

merge

分支合并

git merge branchName    #将分支 branchName 上新的提交合并到当前分支
复制代码

rebase

变基操作

git rebase branchName     #将分支 branchName 上新的提交变基到当前分支
git rebase --continue     #解决变基冲突后继续变基
git rebase --abort        #放弃本次变基,代码将恢复到变基之前
git rebase --skip         #将引起冲突的commits丢弃掉(慎重)
复制代码

tag

推送标签到远程仓库,可查看 push 那一节

git tag                      #显示tag列表
git tag tagName              #给最近一次的 commit 添加标签 tagName
git tag tagName commit_id    #给指定 commit_id 添加标签 tagName
git tag -d tagName           #删除标签 tagName
复制代码

转载于:https://juejin.im/post/5c39ba3f6fb9a049cd546c30

相关文章:

  • [转]Introduction of iSCSI Target in Windows Server 2012
  • 【转】理解红黑树
  • FastDFS-图片服务器
  • Volo.Abp.EntityFrameworkCore.MySQL 使用
  • Future 和 FutureTask 源码详解
  • redis requires ruby version 2.2.2的解决方案
  • 百年老站换新颜 河南信阳火车站重新开通迎客
  • 零基础学算法-质数
  • 日本一名高龄男子开车冲上人行道 造成共7人受伤
  • 消息队列使用的四种场景介绍
  • python序列之元组介绍
  • NBA全明星队长选人环节将直播 又有什么新故事?
  • 过渡
  • 嵌入式应用选择合适的微控制器
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • HashMap ConcurrentHashMap
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • JavaScript中的对象个人分享
  • ng6--错误信息小结(持续更新)
  • Vue 重置组件到初始状态
  • 电商搜索引擎的架构设计和性能优化
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 你真的知道 == 和 equals 的区别吗?
  • 项目实战-Api的解决方案
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • UI设计初学者应该如何入门?
  • 昨天1024程序员节,我故意写了个死循环~
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #pragam once 和 #ifndef 预编译头
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (AngularJS)Angular 控制器之间通信初探
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (JS基础)String 类型
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (四)Linux Shell编程——输入输出重定向
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)LINQ之路
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .bat批处理(六):替换字符串中匹配的子串
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .NET Core跨平台微服务学习资源
  • .net 流——流的类型体系简单介绍
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .one4-V-XXXXXXXX勒索病毒数据怎么处理|数据解密恢复
  • @EnableAsync和@Async开始异步任务支持