git 命令详解和常见问题解决
功能一 提交:1:git init # 初始化,表示即将对当前文件夹进行版本控制2:git status # 查看Git当前状态,如:那些文件被修改过、那些文件还未提交到版本库等。3:git add . # 添加当前目录下所有文件到版本库4:git commit -m "第一次提交" # 提交到版本库,并填写版本说明,以便以后回滚 5:git log # 查看版本库的日志功能二 版本回滚:1:git add # 增加2:git commit -m "..." # 增加到版本库3:git log # 查看版本库的日志4:git reset --hard # 切换到功能一1:git reflog # 查看所有的版本库2:git reset --hard # 切换到功能一突然有bug需要改
解决方案一 stash:1:git add # 增加2:git commit -m "..." # 增加到版本库 3:git log # 查看版本库的日志 # 继续开发,发现之前上线的代码需要修改,把现在的代码保存。1:git stash # 现在开发的代码,保存# 完成功能一,增加到版本库,提交,继续开发之前的功能,发生冲突手动解决冲突1:git stash pop # 将第一个记录从“某个地方”重新拿到工作区(可能有冲突,需手动解决)2:git add . # 增加到版本库3:git commit -m "..." # 增加到版本库,提交stash 用法:git stash # 将当前工作区所有修改过的内容存储到“某个地方”,将工作区还原到当前版本未修改过的状态git stash list # 查看“某个地方”存储的所有记录git stash clear # 清空“某个地方”git stash pop # 将第一个记录从“某个地方”重新拿到工作区(可能有冲突)git stash apply # 编号,将指定编号记录从“某个地方”重新拿到工作区(可能有冲突) git stash drop # 编号 ,删除指定编号的记录 解决bag方法二:(分支)1:git branch dev # 创建dev分支 2:git branch -d dev # 删除分支 3:git checkout dev # 切换分支 4:git merge dev # 分支合并
修复Bug流程:git branch dev # 创建dev分支 git checkout dev # 切换分支# 写代码git add . # 增加到版本库git commit -m 'xxx' # 提交,不合并到master# 切换mastergit checkout master # 切换master git branch bug # 创建bug分支 git chekcout bug # 切换到bug分支# 修复bug git add . # 增加到版本库git commit -m '紧急修复bug' # 提交# 切换master分支git checkout master # 切换master git merge bug # 合并分支# 删除bug分支git branch -d bug # 删除bug分支 # 切换dev分支git checkout dev # 继续开发
git 全局配置
t config --global user.name "fenglepeng"
git config --global user.email "fenglepeng@163.com"
克隆一个新的仓库
git clone https://github.com/flepeng/flepeng.github.io.git
cd flepeng.github.io
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
Username for 'https://github.com': # 输入GitHub用户名
Password for 'https://flp@github.com': # 输入GitHub密码
将一个本地文件夹推送到仓库
cd existing_folder
git init
git remote add origin https://github.com/flepeng/flepeng.github.io.git
git add .
git commit -m "Initial commit"
git push -u origin master
将一个本地仓库重命名之后推送到新的仓库
cd existing_repo
git remote rename origin old-origin
git remote add origin https://github.com/flepeng/flepeng.github.io.git
git push -u origin --all
git push -u origin --tags
另一种拉取策略
另一种拉取策略:git init git remote add origin https://github.com/flp/test.gitgit fetch origin master git merge origin/master 提交远程代码git pull origin master git fetch origin master
强行push
# 如果本地和远程的库属于两个库,而你强行管理上之后,这时你无论 push 和 pull 都会报错
# ‘fatal: refusing to merge unrelated histories’此时需要
git pull origin master --allow-unrelated-histories
# 此时,两个库的文件会并存,之后就可以处理了,或者你可以使用
$ git push -u origin master -f
# 强制提交,但是会丢失远程的代码,慎用
分支(branch)操作相关命令
$ git branch # 查看本地分支
$ git branch -r # 查看远程分支
$ git branch [name] # 创建本地分支,注意新分支创建后不会自动切换为当前分支
$ git checkout [name] # 切换分支
$ git checkout -b [name] # 创建新分支并立即切换到新分支
$ git branch -d [name] # 删除分支,-d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项
$ git merge [name] # 合并分支,将名称为[name]的分支与当前分支合并
$ git push origin [name] # 创建远程分支(本地分支push到远程)
$ git push origin :heads/[name] 或 $ git push origin :[name] # 删除远程分支$ git push -u origin dev # 加了参数-u后,以后即可直接用git push 代替git push origin master
$ git push origin # 将当前分支推送到origin主机的对应分支。
$ git push # 如果当前分支只有一个追踪分支,那么主机名都可以省略。
远程提交,不用输入用户名密码
# 第一步, --global 为所有的git 都设置使用下次输入的账号密码,不推荐使用此参数
git config --global credential.helper store# 第二步,执行这步会让你输入用户名密码,后面再执行这条命令就都不用在输入了
git pull
原理:会在 用户根目录下产生如下两个文件,.gitconfig (记录用户名信息)和 .git-credentials(用户名密码) 用以记录当前操作用户,文件内容就是公钥信息。
问题解析
error: failed to push some refs to 'https://github.com/xxxx.git'
问题展示:
解决办法:
1: 进行push前先将远程仓库pull到本地仓库
$ git pull origin master #git pull --rebase origin master
$ git push -u origin master2: 强制push本地仓库到远程 (这种情况不会进行merge, 强制push后远程文件可能会丢失 不建议使用此方法)
$ git push -u origin master -f3: 避开解决冲突, 将本地文件暂时提交到远程新建的分支中
$ git branch [name]
# 创建完branch后, 再进行push
$ git push -u origin [name]
error: src refspec master does not match any
问题解析:
引起该错误的原因是,目录中没有文件,空目录是不能提交上去的
解决方法
git add README
git commit -m 'first commit'
git push origin master
GIT刷新忽略文件.gitignore
# 1、重置所有缓存(注意后面有个.)
git rm -r --cached .# 2、重新添加(注意后面有个.)
git add .# 3、提交
git commit -m ".gitignore is now working"
git 命令详解和常见问题解决相关推荐
- c#listbox使用详解和常见问题解决
c#listbox使用详解和常见问题解决 参考文章: (1)c#listbox使用详解和常见问题解决 (2)https://www.cnblogs.com/whuanle/p/8622830.html ...
- GitHub使用教程详解(下)——Git的安装以及Git命令详解
上一篇GitHub使用教程详解(上)--官网操作指南[翻译],是针对官网的guide进行了翻译,其实个人来说,我是很不喜欢那么操作的,又要等待页面加载,操作又慢!程序员嘛,还是直接敲入命令代码更迅速高 ...
- git命令详解( 四 )
此篇为git命令详解的第四篇,话不多说,我们直接上知识点好吧 git Push 偏离的工作 gitPush: 此命令负责将你的变更上传到指定的远程仓库,并在远程仓库上合并你的新提交记录.一旦 git ...
- java开发中常用的Git命令详解
java开发中常用的Git命令详解(IDEA内如何操作) 一:写这篇文章的目的是什么? 二:使用场景在哪里? 1:当我们要使用idea去git仓库拉代码时,首先我们的idea得配置git工具 2:项目 ...
- git 命令详解_再次学习Git版本控制工具
微信公众号:PHP在线 Git 究竟是怎样的一个系统呢?为什么在SVN作为版本控制工具已经非常流行的时候,还有Git这样一个版本控制工具呢?Git和SVN的区别在哪儿呢?Git优势又在哪呢?下面PHP ...
- Git命令详解及工作实用流程
Git基本使用 1.什么是Git 1.1 Git简介 1.2Git的优点 2.Git和SVN的区别 3.Git常用命令 3.1 设置用户签名 3.2 初始化本地库 3.3 查看本地库状态 3.3.1首 ...
- 【Git版本控制】Git命令详解
文章目录 前言 1.展示帮助信息 2.回到远程仓库的状态 3.重设第一个 commit 4.查看冲突文件列表 5.展示工作区和暂存区的不同 6.展示暂存区和最近版本的不同 7.展示暂存区.工作区和最近 ...
- git命令详解( 八)
此为记录git的第八篇,前七篇为远程篇,工作中最常用的都在前七篇,因为要在远程分支上合作开发 在提交树上移动 撤销变更 在提交树上移动 在接触 Git 更高级功能之前,我们有必要先学习在你项目 ...
- git 命令详解和Android Studio代码管理工具
目录 前言 git命令上传项目 一.核心操作 二.解决冲突 三.情景举例 四.查看ssh密钥 五.克隆远程项目 六.回退某个操作 七.和远程分支建立关联 八.删除文件 九.远程仓储 十.多人协作 十一 ...
最新文章
- 练习angularjs的ng-click的应用
- Spring5 版本新特性简述
- why process type for MyOpportunity creation is empty
- UVA 297 Quadtrees
- JAVA调用shell脚本利用ansible修改多节点上的redis参数
- 轻松解决加密的PDF如何编辑简单技巧
- 【转载】数据库操作系统——Visual FoxPro 6.0安装步骤
- QQ空间自动点赞脚本1
- 一篇适合小白的Shiro教程
- 浪潮nf5280m5默认ipmi_NF5180M5- IPMI设置
- Python中面向对象(类,对象,魔法,打印)
- 百度搜索推广账户搭建思路
- js实现图片的随机抽奖
- 适用于Android手机的汉信码识别SDK
- GoogleAdMob广告 SDK接入(Android)
- 【CCNA | 网络模拟器CPT系列】Cisco Packet Tracer 8.2.0 的安装 Ⅰ
- 人工神经网络的基础数学模型来自哪里
- 前端生成二维码 微信小程序
- 空间实景三维激光点云数据处理服务来了!
- 初识二维码 第二十讲 二维码解码程序的组件之一 摄像头拍照功能
热门文章
- JSch - Java Secure Channel : java 代码实现服务器远程操作
- JDK下载地址、SecureCRT中JDK安装和环境配置、SecureCRT窗口编程、linux下命令运行小程序
- ssm(springMVC + spring+MyBatis) 小例
- 机器学习:算法模型:决策树
- Windows 运行... 可执行的命令
- Apache版本兼容性问题
- 【亲测有效】Kali Linux无法安装网易云音乐的解决方案
- 使用模板引擎artTemplate的几个问题总结
- 机器学习自主解决安全威胁离我们还有多远?
- iPad开发--QQ空间,处理横竖屏布局,实现子控件中的代理