git的基本使用和问题
1,填写信息
git config --global user.name "用户名"
git config --global user.email "邮箱"
2,创建仓库
git init 初始化仓库(会生成一个.git目录)
mkdir xxx 创建仓库目录
cd 切换目录
pwd 当前位置
3,添加文件到版本库
touch xxx 创建文件
vi xxx 打开文件
git add xxx 将指定文件添加但暂存区
git add. 将当前目录下所有文件添加到暂存区
git commit -m '描述' 将暂存区保存到版本库
git commit -a -m '描述' 直接提交到版本库
4,修改文件查看文件和不同
git status 查看当前仓库的状态
git diff 查看此次的修改和上次的不同
5,版本回退
git log 查看之前的日志 git log --pretty=oneline 整理一下
git reset -hard HEAD^ 回退到上一个版本
git reset -hard HEAD^^ 回退到上上个版本
git reset -hard HEAD~100 回退到往上100个版本
6,回退到未来某个版本
git reflog 记录每一次命令
git reset -hard commit id 回退到历史修改版本
7,撤销修改
git checkout -- xxx 撤销工作区修改
git reset HEAD file 撤销暂存区的修改,重放回工作区
对已经提交到版本库的文件直接版本回退
8,删除文件
git rm xxx 从版本库删除文件 也要提交 git commit -m '描述'
9,远程仓库(GitHub)
git remote add origin http://github.com/账号名/仓库名.git origin 是远程库的名字,github的默认叫法
git push -u origin 分支名 把本地仓库的内容推送到github仓库
git push origin master 上面命令第一次推送之后,以后的每次本地提交,使用不带 -u 参数的命令即可
git clone git remote add origin http://github.com/账号名/仓库名.git 克隆仓库
10,分支管理
git checkout -b 分支名 创建并切换分支
git branch 分支名 创建分支
git branch 查看所有分支 当前分支会有*号
git checkout 分支名 切换分支
git merge 要合并的分支名(不是当前) 合并分支
git branch -d 分支名 删除分支
11,解决冲突
问题:分支1修改文件提交后,分支2没有合并分支1修改的文件,也修改并提交了,之后在合并就会有冲突
查看:合并时会报,git status会告诉我们冲突的文件
解决:修改文件手动解决,Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,修改后保存
git log --graph 查看分支合并图
12,bug分支
问题:修复bug时,会通过创建新的bug分支进行修复,然后合并,最后删除,当马上需要解决bug分支上的bug'时,而当前的分支还没有完成,无法提交
解决:git stash 将当前的工作现场隐藏起来,以后恢复继续工作
git stash 查看隐藏
git stash pop 恢复现场
13,feature
开发一个新实验性功能,最好新建一个feature分支,防止主分支被打乱;
如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。
git的基本使用和问题的更多相关文章
- Git 子模块 - submodule
有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目. 也许是第三方库,或者你 独立开发的,用于多个父项目的库. 现在问题来了:你想要把它们当做两个独立的项目,同时又想在 一个项目中使用另 ...
- Git 在团队中的最佳实践--如何正确使用Git Flow
我们已经从SVN 切换到Git很多年了,现在几乎所有的项目都在使用Github管理, 本篇文章讲一下为什么使用Git, 以及如何在团队中正确使用. Git的优点 Git的优点很多,但是这里只列出我认为 ...
- Git与Repo入门
版本控制 版本控制是什么已不用在说了,就是记录我们对文件.目录或工程等的修改历史,方便查看更改历史,备份以便恢复以前的版本,多人协作... 一.原始版本控制 最原始的版本控制是纯手工的版本控制:修改文 ...
- Git Bash的一些命令和配置
查看git版本号: git --version 如果是第一次使用Git,你需要设置署名和邮箱: $ git config --global user.name "用户名" $ gi ...
- 在Ubuntu 16.10 安装 git 并上传代码至 git.oschina.net
1. 注册一个账号和创建项目 先在git.oschina.net上注册一个账号和新建一个project ,如project name 是"myTest". 2.安装git sudo ...
- 史上最详细git教程
题外话 虽然这个标题很惊悚,不过还是把你骗进来了,哈哈-各位看官不要着急,耐心往下看 Git是什么 Git是目前世界上最先进的分布式版本控制系统. SVN与Git的最主要的区别 SVN是集中式版本控制 ...
- [版本控制之道] Git 常用的命令总结(欢迎收藏备用)
坚持每天学习,坚持每天复习,技术永远学不完,自己永远要前进 总结日常开发生产中常用的Git版本控制命令 ------------------------------main-------------- ...
- 【解决方案】Myeclipse 10 安装 GIT 插件 集成 步骤 图解
工程开发中,往往要使用到集成GIT ,那么下面说说插件安装步骤 PS:以Myeclipse 10 为例,讲解集成安装步骤. ----------------------main------------ ...
- git 命令
切换仓库地址: git remote set-url origin xxx.git切换分支:git checkout name撤销修改:git checkout -- file删除文件:git rm ...
- git亲测命令
一.Git新建本地分支与远程分支关联问题 git checkout -b branch_name origin/branch_name 或者 git branch --set-upstream bra ...
随机推荐
- java operate
class OperateDemo { public static void main(String[] args) { /* + - * / %(取余数) */ int x = 2810; Syst ...
- CodeWarrior 10 配置Jlint初始化文件
新建一个项目之后,飞思卡尔的仿真器的配置不如德州仪器那么简单.他需要一些配置. 当我们新建一个工程后,可以采取如下步骤配置Jlint: 1.右击工程名,选择属性. 2.在Run/Debug Setti ...
- UnitZ Battlegrounds beta5 - Unity吃鸡类型游戏模版 源码 仿绝地求生
Requires Unity 2018.2.6 or higher.The first battle royale game starter kit on Asset Store, all syste ...
- JVM学习02:GC垃圾回收和内存分配
JVM学习02:GC垃圾回收和内存分配 写在前面:本系列分享主要参考资料是 周志明老师的<深入理解Java虚拟机>第二版. GC垃圾回收和内存分配知识要点Xmind梳理 案例分析1-(G ...
- oracle 锁表sql 解锁
1.select * from v$locked_object; 查看具体的 : select session_id , oracle_username, process from v$loc ...
- 20-matlab全排列-函数调用
matlab中global的用法 Matlab 中子函数不传参直接调用主函数global变量方法 在一个m文件里要调用一个函数(自定义的),但是我希望这个函数能利用并修改workspace中的变量( ...
- 【java-console】如何双击运行可执行jar包及遇到依赖dll报错问题的解决办法
如何配置双击运行可执行jar包的步骤,请移步到 这里 查看具体的操作,此处不再介绍. 本文主要解决如何处理依赖dll报错的问题解决办法. 我有一个jar包可执行文件运行需要依赖第三方的dll文 ...
- java redispool测试类保存
这两天睡眠不足,今晚吃完饭,肚子烦躁的很,迟迟进入不了代码的状态,强打精神,又赶上处理了几个编辑器的报错,等到真正面对问题的时候又是晚上十一点, 晚上十一点是幸运点,到这个点无关问题都能解决完毕进入调 ...
- 现代编译原理——第二章:语法分析之LL(K)
转自: http://www.cnblogs.com/BlackWalnut/p/4472122.html LL(K)语法分析技术是建立在预测分析的技术之上的.我们先来了解预测分析技术.考虑以下文法: ...
- java8 先groupingBy 后map
Map<Integer,List<String>> mapBanJI_UserNameList=list.stream().collect(Collectors.groupin ...