git recommend(alive)
初始化并跟踪远程分支:
echo "# test" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/jiujue/branchName.git
git push -u origin master
合并分支到 master : get merge
图形化显示 : git log --graph
代码暂存(用于debug):
暂存工作状态
git stash
创建并切换到debug分支
git checkout -b bug01
debug ...
git checkout master
合并debug后的分支
git merge bug01
查看暂存的工作状态
git stash list
回到原工作状态 :
git pop
查看分支:git branch
创建分支:git branch name
切换分支:git checkout name 工作区文件内容会立即变化成对应分支的内容
创建+切换分支:git checkout -b name
合并某分支到当前分支:git merge name
删除分支:git branch -d name 查看分支合并情况:git log –graph –pretty=oneline –abbrev-commit 合并分支(fast forward):git merge name
合并分支(禁用 Fast forward):git merge –no-ff -m “描述” dev
1、创建标签
git tag tagname 对当前版本建立标签
git tag tagname commit_id 对历史版本建立标签
git tag -a tagname -m “描述…” commit_id 添加说明
git tag 查看所有标签
git show tagname 查看某个标签具体信息 2、删除标签
git tag -d tagname 删除本地标签 3、推送标签
git push origin tagname 推送本地的某个标签到远程
git push origin –tags 一次性推送所有分支 4、删除远程标签
git tag -d tagname 先删除本地
git push origin :refs/tags/tagname 从远程删除
设置用户名与邮箱(用户标识,必要)
git config --global user.name "[名称]"
git config --global user.email [邮箱]
======================================================================================================================
from : https://www.cnblogs.com/songgj/p/8965580.html
git的撤销与回滚在平时使用中还是比较多的,比如说我们想将某个修改后的文件撤销到上一个版本,或者是想撤销某次多余的提交,都要用到git的撤销和回滚操作。撤销分两种情况,一个是commit之前,一个是commit之后,下面具体看下这两种情况。
一.git commit之前
未添加到暂存区的撤销(没有git add)
添加进暂存区的撤销(git add后)

$ git status
On branch test_git
Changes not staged for commit: 没有添加到暂存区
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: new_src/app/Http/Controllers/Frontend/KyHome/KyHomeUnitTrait.php
modified: new_src/app/Http/Controllers/Frontend/KyHome/KyHomeWordFilterTrait.php

可以通过
git checkout -- filename来撤销修改
git checkout -- new_src/app/Http/Controllers/Frontend/KyHome/KyHomeWordFilterTrait.php
再次查看文件状态发现选择的文件已经成功被撤销了。

$ git status
On branch test_git
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: new_src/app/Http/Controllers/Frontend/KyHome/KyHomeUnitTrait.php

如果想将多个文件一次性撤销可以用
git checkout -- .
上面是 未添加到暂存区的撤销
下面是添加到暂存区的

$ git status
On branch test_git
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory) modified: new_src/app/Http/Controllers/Frontend/KyHome/KyHomeApp.php
modified: new_src/app/Http/Controllers/Frontend/KyHome/KyHomeComment.php


$ git add -A
$ git status
On branch test_git
Changes to be committed: 已经添加暂存区了
(use "git reset HEAD <file>..." to unstage) modified: new_src/app/Http/Controllers/Frontend/KyHome/KyHomeApp.php
modified: new_src/app/Http/Controllers/Frontend/KyHome/KyHomeComment.php

从暂存区撤销
$ git reset HEAD new_src/app/Http/Controllers/Frontend/KyHome/KyHomeApp.php
Unstaged changes after reset:
M new_src/app/Http/Controllers/Frontend/KyHome/KyHomeApp.php
如果想一次性将所有暂存区文件撤销回来,还是上面的命令,不过不用加文件路径。
$ git reset HEAD
Unstaged changes after reset: M new_src/app/Http/Controllers/Frontend/KyHome/KyHomeApp.php
M new_src/app/Http/Controllers/Frontend/KyHome/KyHomeComment.php
二.git commit之后
如果当commit提交后想撤销的话,这就需要revert命令。git revert 命令是撤销某次操作,而在此次操作之前和之后的提交记录都会保留。
先修改了几个文件然后commit 再用git log查看提交记录。
commit 2842c8065322085c31fb7b8207b6296047c4ea3
Author: songguojun <songgj@kingnet.sh>
Date: Sat Apr 28 11:21:30 2018 +0800 add content
然后使用revert 后面跟上git提交的commitid
git revert 2842c8065322085c31fb7b8207b6296047c4ea3

Revert "add content" This reverts commit 2842c8065ffe2085c31fb7b8207b6296047c4ea3. # Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch test_git
# Changes to be committed:
# modified: new_src/app/Http/Controllers/Frontend/KyHome/KyHomeApp.php
# modified: new_src/app/Http/Controllers/Frontend/KyHome/KyHomeComment.php

然后在推送到远端更新远程仓库代码,修改的文件就撤销回来了。注意的是revert奇数次生效,偶数次又回到之前的修改状态。比如一个文件内容是a,那么修改为ab,revert后文件变成了a,如果在revert后文件又还原成ab了。
还有就是如果想回到之前某个版本,可以用reset命令,可以回退到某次提交,那该提交之后的提交都会回滚,不过这种覆盖是不可逆的,之前的提交记录都没有了。所以平时开发中尽量注意,避免使用reset。
用法:
git reset --hard commit_id
- --hard – 强制将缓存区和工作目录都同步到你指定的提交
git reset --hard fdeb212a5418cc8e31f32d63cf197550297468ec
HEAD is now at fdeb212 增加mysql端口配置
然后在提交到远端覆盖。
git recommend(alive)的更多相关文章
- git配置ssh(github)
[参考官方文档] SSH keys are a way to identify trusted computers, without involving passwords. The steps be ...
- Git Learning - By reading ProGit
Today I begin to learn to use Git. I learn from Pro Git. And I recommend it which is an excellent bo ...
- Git版本控制管理学习笔记2--起步
首先确保系统中已经安装了git,这里使用的linux系统. 一.命令行初步使用: 1.git命令: 列出它的选项和最常用的子命令.标准命令格式中,COMMAND代表的就是下面列出的子命令. [root ...
- git submodule 使用
这个是备忘录,原网页: https://medium.com/@porteneuve/mastering-git-submodules-34c65e940407 http://cncc.bingj.c ...
- git subtree 使用
这个是备忘录.原网页(https://medium.com/@porteneuve/mastering-git-subtrees-943d29a798ec , http://cncc.bingj.co ...
- git初体验(五)SSH的理解
一.SSH SSH是Secure shell的缩写,即"安全外壳协议",专为远程登录会话和其他网络服务提供安全性的协议,是一项计算机上的安全协议. 传统的网络服务程序,如rsh.F ...
- iOS版本控制git小结--yoowei
# 显示隐藏文件 defaults write com.apple.finder AppleShowAllFiles Yes && killall Finder # 不显示隐藏文件 d ...
- 实践中的Git常用指令分析
从工作开始,一直都在使用为知笔记(作为程序员需要知道的内容很多---不需要很深入理解,一段时不使用的东西可能就会忘记).但本周一同步不同PC端时,了解到为知会在2017/1/1开始收费! 既然收费了, ...
- git :设置 object-c 的忽略文件
使用 git 命令行来进行版本控制的时候, 需要设置忽略文件. 这里能找到所有语言的忽略文件的内容:https://github.com/github/gitignore OBJECT的忽略文件内容: ...
随机推荐
- JavaSE基础知识---常用对象API之String类
一.String类 Java中用String类对字符串进行了对象的封装,这样的好处在于对象封装后可以定义N多属性和行为,就可以对字符串这种常见的数据进行方便的操作. 格式:(1)String s1 = ...
- TextInputLayout低版本bug :“android.view.InflateException: Binary XML file line #6 : Error inflating class Textview”
开发中用到TextInputLayout配合TextInputEdittext做输入框,在android7.0 android8.0手机上运行正常,在异步android5.0.2的手机上,点击输入框就 ...
- QT中加载动态链接库
一.添加第三方的头文件 这个问题再简单不过了,不过我还是要说下. 首先,添加头文件 #include "ControlCAN.h" 然后,再将这个头文件放到工程的目录下,就OK了 ...
- Visio图表应用
两种方式创建 插入图表之后通过设计面板的更改图表类型进行更改 双击图表进入编辑状态. 组合其中组合图的利用 下面是图表编辑操作: 双击进入图表之后下方会有“Chart1”跟“Sheet1”两个板块 而 ...
- 洛谷p1119--灾难后重建(Floyd不仅仅是板子)
问题描述 询问次数 5 000 00, 顶点数 200 怎么办? dijkstra?对不起,超时了/. 时间限制是1秒,询问5 000 00 ,每次dijsktra要跑n*n*logm 次,稳 ...
- mysql主从之基于mycat实现读写分离
一 环境 1.1 结构 192.168.132.125 mycat 192.168.132.121 master 192.168.132.122 slave 主从已经配置完成 1.2 安装myca ...
- 在win64上使用bypy进行百度网盘文件上传
阿里云服务器的带宽为2M,网站每日的备份包都3G多了,离线下载太费时间了,打算每日将备份包自动上传到自己的百度云盘里.1.先安装Python 执行python -V ,发现没安装python2.去py ...
- CentOS 安装图形化界面后重启出现许可等事项操作
这是CentOS内核的初始设置页面,下面给出中文解释及操作方法. 1.CentOS Linux 7 初始设置(核心) 1)[!]许可证信息 (没有接受许可证) 请您选择[‘1’ 输入许可证信息 | ‘ ...
- Time、Date拼接成TimeStamp
Time.Date拼接成TimeStamp 有关于Time类型.Date类型的数据这里不再赘述,本文旨在讲解如何将数据库中的Time.Date类型取出来并转换成TimeStamp类型,话不多说,先看代 ...
- AcWing 247. 亚特兰蒂斯 | 扫描线
传送门 题目描述 有几个古希腊书籍中包含了对传说中的亚特兰蒂斯岛的描述. 其中一些甚至包括岛屿部分地图. 但不幸的是,这些地图描述了亚特兰蒂斯的不同区域. 您的朋友Bill必须知道地图的总面积. 你自 ...