git常用命令及工作流程
Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。在此记录git工作流程及其常用命令
提示:以下是本篇文章正文内容,下面案例可供参考
git add
后的代码区域;git commit
后的代码区域;工作区 | 指在本地仓库中的全部代码区域; |
---|---|
暂存区 | 指在本地仓库中通过 git add 后的代码区域; |
本地仓库 | 指在本地仓库中的 git commit 后的代码区域; |
远程仓库 | 指在本地仓库中的 git commit 后的代码区域; |
git clone 命令用于将存储库克隆到本地。
git clone [url] // 将存储库克隆到本地
git init 命令用于在目录中创建新的 Git 仓库。
git init // 创建新的 Git 仓库,在当前路径下生成 .git 目录
git remote 用于管理跟踪远程仓库。
git remote -v // 查看连接的远程仓库地址
git remote add origin [gitUrl] // 为本地仓库添加远程仓库地址
git push -u origin master // 将本地仓库的master和远程仓库的master进行关联
git remote origin set-url [gitUrl] // 为本地仓库修改远程仓库地址
git remote rm origin // 为本地仓库删除远程仓库连接
git checkout 命令用于切换分支。
git checkout [branchName] // 切换分支
git checkout -b [branchName] // 新建分支并切换到该分支
git branch 命令用于查看、创建、删除分支。
git branch //查看本地分支
git branch -r //查看远程分支
git branch -a //查看本地和远程分支
git branch [branchName] //新建本地分支但不切换
git branch -D [branchName] //删除本地分支
git branch -m [oldBranchName] [newBranchName] //重新命名分支
git tag 用于创建、删除、查看标签。
git tag [tagName] // 新建标签
git tag // 查看标签列表
git tag -d [tagName] // 删除标签
git push origin [tagName] // 推送标签到远程仓库
git add 命令用于将本地文件添加到暂存区。
git add [file1] [file2] // 添加指定文件至暂存区
git add [dir] // 添加指定目录至暂存区
git add . // 添加当前目录下所有文件至暂存区
git add -A // 添加当前仓库下的所有文件改动至暂存区
git commit 命令用于将暂存区内容添加到本地仓库中。
git commit -m 'xxx' // 将暂存区文件添加到本地仓库,并记录下备注
git commit -m 'xxx' -n // 将暂存区文件添加到本地仓库,并记录下备注,同时跳过 husky hooks 设置的规则校验
git commit -am 'xxx' // 将文件添加到暂存区,再添加到本地仓库,并记录下备注
git push 命令用于将本地分支推送到远程仓库。
git push [remoteName] [branchName] // 推送分支
git push --set-upstream [remoteName] [branchName] // 推送分支并建立关联关系
git pull 命令用于从远程仓库拉取代码并合并到本地当前分支。
git pull // 从远程仓库拉取代码合并到本地,等同于 git fetch && git merge
git pull --rebase // 使用rebase的模式进行合并
git fetch 命令用于从远程获取代码库。
git fetch // 从所有远程仓库拉取当前分支代码
git fetch [remoteName] // 从指定远程仓库拉取当前分支代码
git fetch --all // 获取所有远程仓库所有分支的更新
git cherry-pick 命令用于获取指定的 commit,可以将分支 a 上的 commit 1,复制到分支 b上。
git cherry-pick [commitId] // 获取指定的commit
git merge 命令用于分支合并,将其他分支的内容合并到当前分支中。
git merge [branchName]
git rebase 用于分支变基。
git rebase master // 将当前分支变基到 master 分支上
git rebase -i [commitId] // 基于 commitId 进行 rebase,交互式变基,可以重新编辑 commit,比如压缩合并
git reset 命令用于回退版本,可以指定退回某一次提交的版本。
git reset HEAD^ // 回退所有内容到上一个版本
git reset HEAD^ [filename] // 回退某文件到上一个版本
git reset [commitId] // 回退所有内容到指定版本
git reset --soft HEAD~1 // 回退本地仓库到上一个版本
git reset --hard HEAD~1 // 回退本地仓库到上一个版本,并删除工作区所有未提交的修改内容
git revert 指令用于回滚提交,可以回滚某一次提交记录。
git revert [commitId] // 回滚某次提交
git revert [commitId] -m 1 // 回滚某次 merge 的 commit,1 代表保留主分支代码
git stash 用于暂存文件。
git stash // 暂存文件
git stash save 'aa' // 暂存文件,添加备注
git stash pop // 应用最近一次暂存文件,并删除暂存记录
git stash apply // 应用最近一次暂存,但不删除该暂存记录
git stash apply stash@{
第几次暂存的代码,例如0} // 应用某一次暂存,但不删除该暂存记录;
git stash list // 暂存记录
git stash clear // 删除所有暂存记录
git reflog 记录了所有的 commit 操作记录,便于错误操作后找回。
git reflog
git rm 用于从 git 仓库删除指定文件或目录。
git rm [filname]
git rm [dir]
git log 命令用于查看 git commit 记录。
git log // 查看所有 commit 记录
git log --grep 瀑布流 // 搜索 commit msg 有瀑布流关键字的 记录
参考及转载资料:掘金-清汤饺子
文章浏览阅读271次。原创字典树字典树,又称单词查找树,Trie树,是一种树形结构,哈希表的一个变种。用于统计,排序和保存大量的字符串(也可以保存其的)。优点就是利用公共的前缀来节约存储空间。在这举个简单的例子:比如说我们想储存3个单词,nyist、nyistacm、nyisttc。如果只是单纯的按照以前的字符数组存储的思路来存储的话,那么我们需要定义三个字符串数组。但是_字典树建树
文章浏览阅读3.1k次。关于Android系统的内存回收机制,相信大家都不陌生,Android基于各个应用进程承载四大组件的状态对应用进程进行重要性评估,并在系统内存紧张时根据重要性由低到高来选择杀死应用进程,以达到释放内存的目的。重要性评估由AMS执行,具体来说就是AMS.updateOomAdjLocked函数,反过来说,AMS.updateOomAdjLocked的作用就是更新应用进程的重要性。应用进程(Pro..._updateoomadjlocked
文章浏览阅读8.5k次,点赞28次,收藏38次。本章将会讲解计算机的操作系统。操作系统(Operating System,OS)就好比一个计算机内部的管理者,是管理和控制计算机硬件与软件资源的计算机程序,直接运行在“裸机”上的最基本的系统软件,任何其他应用软件都必须在操作系统的支持下才能运行,操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。操作系统的功能包括管理计算机系统的硬件,软件及数据资源,控制程序运行,为其他应用软件提供支持等。_操作系统
文章浏览阅读1.9w次,点赞7次,收藏27次。pip download 和 pip install 有着相同的解析和下载过程,不同的是,pip install 会安装依赖项,而 pip download 会把所有已下载的依赖项保存到指定的目录 ( 默认是当前目录 ),此目录稍后可以作为值传递给 pip install --find-links 以便离线或锁定下载包安装_pip download
文章浏览阅读3.4k次。在CentOS下设置密码复杂度分为两步(1)修改/etc/login.defs文件vim /etc/login.defsPASS_MAX_DAYS90 # 密码最长过期天数PASS_MIN_DAYS80 # 密码最小过期天数PASS_MIN_LEN10 # 密码最小长度PASS_WARN_AGE7 # 密码过期警告天数(2)..._echo 'mypassword' | openssl passwd -6 -stdin centos7
文章浏览阅读480次。http://blog.sina.com.cn/s/blog_736d0b9101018cgc.html_王斌 github
文章浏览阅读2.8k次。实现代码如下:public static int factorial(int n){ if (n <= 1){ return 1; } return factorial(n-1) + factorial(n-2); }测试代码如下:System.out.println(factorial(40));测..._用递归方法编程计算fibonacci数列:(n=10),fac.jpg
文章浏览阅读1.3k次。scratch班级名称一、题目要求1、准备工作 保留小猫角色,白色背景 2、功能实现 点击绿旗后,询问请输入年级数,等待输入年级数 询问请输入班级数,等待输入班级数 定义列表“全校班级”,假设每个班级的班级数相同,所有班级名称自动生成并保存到全校班级中。 例如,输入年级数为5,输入班级数为8,可以看到舞台上列表全校班级的内容为:1(1)班、1(2)班、...5(7)班、5(8)班 二、案例分析1、角色分析角色:小猫2、背景_scratch班级名称
文章浏览阅读379次。郁金香2021年游戏辅助技术中级班(七)058-C,C++写代码HOOK分析封包数据格式A059-C,C++写代码HOOK分析封包数据格式B-detours劫持060-C,C++写代码HOOK分析封包数据格式C-过滤和格式化061-C,C++写代码HOOK分析封包数据格式D-写入配置文件062-C,C++写代码HOOK分析封包数据格式D-读取配置文件058-C,C++写代码HOOK分析封包数据格式A_squad辅助科技
文章浏览阅读350次。上面的命令启动了一个带有NAT网络的QEMU虚拟机,并设置了端口转发,将主机的2222端口映射到虚拟机的22端口(SSH端口)。1、安装openssh,如果是根文件系统用buildroot构建,打开 BR2_PACKAGE_OPENSSH 开关。2、在qemu的启动脚本里增加。3、在虚拟机里增加一个新用户。4、向虚拟机里发送文件。_qemu ssh连接
文章浏览阅读63次。一、概述Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。二、体系结构图三、Netty的核心结构Netty是典型的Reactor模型结构,在实现上,Netty中的Boss类充当mainReactor,NioWorker类充当subReactor(默认NioWorker的个数是当前服务器的..._channelconnected
文章浏览阅读4.7k次。最近Spring Boot项目做单点登录对接的时候,在配置过滤器的时候,找了几种方法,记录一下。欢迎评论补充沟通~由于之前JAVA Web项目最开始都有web.xml配置,随着框架慢慢的进化,从Spring Boot开始,已经没有了web.xml配置文件。那原来在web.xml里,配置的filter过滤器,在Spring Boot中怎么配置呢?注意,这个自定义类,也不能加@Component或@Configuration注解,加了就会初始化Filter了,过滤全部的路径了。_spring boot filter 配置