git命令及远程仓库操作内容整理
0.在git官网上下载git对应的适配系统版本
进入到需要管理的目录,打开git终端
1.git相关的基础命令:
git init
在当前文件夹下创建一个.git的隐藏文件夹,初始化版本控制器
注:不要同一目录下多个位置初始化,他可以管理当前目录下所有文件(包括子级目录)
git status
查看Git当前状态,如:那些文件被修改过、那些文件还未提交到版本库等。
git add 文件名
将指定文件添加到版本库的暂存状态。
git commit -m '提交信息'
将暂存区的文件提交到版本库的分支。
第一次提交会要求配置email和name:
git config --local user.name 'sakura'
git config --local user.email 'you@example.com'
git log
查看提交记录,即:历史版本记录
git reset --hard 版本号
可以在log中查看版本号,并回滚到指定的版本
注:如果回滚后又想回滚到回滚之前的状态,这时候得使用git reflog,然后再git reset --hard 版本号
git revert 版本号 可以取消git log中的提交记录
2.stash
stash的应用场景:
如果在开发一个新功能时正开发了一半,发现以前的旧功能中存在bug,急需去修改bug,那么这个时候为了避免新功能造成干扰可以先将新开发的代码存储到临时文件夹中
git stash
将当前工作区所有修改过的内容存储到“某个地方”,将工作区还原到当前版本未修改过的状态
git stash list
查看“某个地方”存储的所有记录
git stash clear
清空“某个地方”
git stash pop
将第一个记录从“某个地方”重新拿到工作区(可能有冲突)
git stash apply 编号
将指定编号记录从“某个地方”重新拿到工作区(可能有冲突)
git stash drop 编号
删除指定编号的记录
3.branch
branch称为分支,默认仅有一个名为master的分支。
一般开发新功能流程为:开发新功能时会在分支dev上进行,开发完毕后再合并到master分支。
如果在开发的途中出现了bug,那么可以在master分支上开启一个bug分支,修复完成后使用merge来合并master与bug分支
新功能开发完成后再将dev分支与master分支进行合并
git branch 分支名称
创建分支
git checkout 分支名称
切换分支
git branch -m 分支名称
创建并切换到指定分支
git branch
查看所有分支
git branch -d 分支名称
删除分支
git merge 分支名称
将指定分支合并到当前分支
注:同样可以完成合并操作的还有rebase,它能使分支更加的简洁,美观
4.将项目上传到远程仓库
例如: github
git remote add origin(别名) https://github.com/louyifei8888/test.git
git push origin master
将本地的master分支推到github上
git push origin dev
将本地的dev分支推到github上
git clone https://github.com/louyifei8888/test.git
从github上克隆一份项目,默认获取到的只有master分支
git branch dev origin/dev
创建dev分支并导入远程origin中的dev分支同步
git pull origin dev
从远程GitHub仓库获取dev分支最新内容,并合并到本地
注:git pull origin dev 相当于执行了两步
第一步:git fetch origin
第二步:git merge origin/分支 或 git rebase origin/分支
5.协同开发的三种方式
1.项目合作者
2.创建组织,邀请成员(拥有修改组下所有项目代码的权利)
3.fork(fork到自己的仓库修改完成后new pull request,会给写项目的管理人员发送一条通知)
git命令及远程仓库操作内容整理的更多相关文章
- Git(进击学习:远程仓库操作)-V3.0
1.查看当前的远程仓库:git remote或git remote -v 2.添加远程仓库:git remote add [shortname] [url] git remote add pb git ...
- (超详细)使用git命令行将本地仓库代码上传到github或gitlab远程仓库
(超详细)使用git命令行将本地仓库代码上传到github或gitlab远程仓库 本地创建了一个 xcode 工程项目,现通过 命令行 将该项目上传到 github 或者 gitlab 远程仓库,具体 ...
- git多个远程仓库
1. 前言 用GitHub管理自己的开源项目有几年了,最近一年更新得比较多,仓库也越来越多越来越大.有时候感觉GitHub太慢,尤其是最近感觉更为明显,于是萌生了再找个国内类似GitHub的代码托 ...
- git指令-添加远程仓库
git指令-添加远程仓库 首先在GitHub上创建属于你自己的远程仓库:例如我创建的远程仓库mybatis用于我最近保存的mybatis代码 目前,在GitHub上的这个learngit仓库还是空的, ...
- git如何删除远程仓库的某次错误提交
git如何删除远程仓库的某次错误提交 如果远程仓库,能ssh访问,那就跟本地没什么区别 reset命令有3种方式 git reset --mixed 此为默认方式,不带任何参数的git res ...
- 解决git push至远程仓库失败的问题
产生问题的原因: 远程仓库存在本地不存在的文件, 一个常见的例子是创建repository时勾选了README.md, 但此时本地还没有这个文件, 就会导致本地文件无法同步到远程仓库的问题. 解决方法 ...
- [gitHub实践] git基础:远程仓库的使用
[gitHub实践] git基础:远程仓库的使用 版权2019.6.2更新 git 基础 远程仓库的使用 git remote # 查看远程仓库 $ git remote # 克隆的仓库服务器默认名字 ...
- Myeclipse如何使用自带git工具向远程仓库提交代码(转)
Myeclipse如何使用自带git工具向远程仓库提交代码 第一步:将改动的代码标记 项目右键:team->synchronize workspace 点击确定 项目右键>add to g ...
- git关联github远程仓库的问题
git关联github远程仓库的时候,报fatal: remote origin already exists. 导致这个问题原因可能是之前关联的时候关联错了,再次关联就不行了. 解决办法是: 1.将 ...
随机推荐
- time和datetime和tzinfo
time和datetime模块还有tzinfo (时区)(一直不明白两者的区别,然后摘了两片文章(最后面的两个链接),很清晰...) 一.time模块 常用函数 1. time()函数 time()函 ...
- jsr-303 参数校验-学习(转)
1.是什么? JSR303 是一套 JavaBean 参数校验的标准,它定义了很多常用的校验注解,比如: ----------------------------------------------- ...
- java之数据库连接池-dbcp&c3p0&dbutils
介绍 因为数据库连接对象的创建比较消耗性能,所以可以在应用程序启动时就在内存中开辟一片空间(集合)存放多个数据库连接对象,后面需要连接时直接从该空间中取而不用新创建:使用完毕后归还连接(将连接重新放回 ...
- [js]函数的上级作用域,他的上级作用域就是谁,跟函数在哪执行的没什么关系.
函数的上级作用域,他的上级作用域就是谁,跟函数在哪执行的没什么关系. <script> //如何查找上级作用域? //看函数在哪个作用域下定义的,他的上级作用域就是谁. 跟函数在哪执行的没 ...
- string和int的相互转换方法
string转为int string str = "100000"; stringstream ss; ss << str; int i; ss >> i; ...
- usdt节点启动慢和队列深度超出了范围问题
usdt节点启动慢和队列深度超出了范围问题 usdt的连接节点报错Work queue depth exceeded(队列深度超出了范围)大概是什么问题?重启了几次节点都不行队列深度超出了范围,估计是 ...
- Poj1979 Red and Black (DFS)
Red and Black Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 47466 Accepted: 25523 D ...
- js 清空html input file的值
在做上传图片预览时,利用input onchange事件触发函数,但是type=file时,一定记得新建要清空原来的图片,因为原来的图片还存在在input里面,再选重复的图片没有change,故不会触 ...
- .net基本面试题
OOP: Object Oriented Programming: 面向对象编程技术的关键性观念是它将数据及对数据的操作行为放在一起,作为一个相互依存.不可分割的整体——对象.对于相同类型的对象进行分 ...
- 基于ROS和python,通过TCP通信协议,完成键盘无线控制移动机器人运动
一.所需工具包 1.ROS键盘包:teleop_twist_keyboard 2.TCP通讯包:socket $ cd ~/catkin_ws/src $ git clone https://gith ...