官方学习地址

https://git-scm.com/book/zh/v2

简单的代码提交流程

1. git status 查看工作区代码相对于暂存区的差别;

2. git add . 将当前目录下修改的所有代码从工作区添加到暂存区 . 代表当前目录;

3. git commit -m ‘注释’ 将缓存区内容添加到本地仓库;

4. git push origin master 将本地版本库推送到远程服务器;

5. origin是远程主机,master表示是远程服务器上的master分支,分支名是可以修改的。

防止出错的步骤

1. git add xx/xxx/file1 xx/xx/file2;

2. git stash 将本地修改存储起来;

3. git pull 从仓库获取最新代码;

4. git stash pop stash@{0} 将本地的代码和远程获取的合并(这里可能提示冲突conflict);

5. git status 看哪几个有冲突,如果没冲突,→8 commit,push, 如果冲突→6;

6. git difftool xx/xxx/file3 唤起对比工具,将远程的代码段合并到本地的文件中;

7. git status 看刚才修改的文件有没有add,如果是红色,add一下;

8. git commit -m "姓名 修改某某功能";

9. git push origin head:refs/for/dev_core。

回退流程

【参考】

https://www.cnblogs.com/wpcnblog/p/9945732.html

现在先假设几个环境,本文将会给出相应的解决方法:

1. 本地代码(或文件)已经add但是还未commit;

2. 要回退的commit的代码已经commit了,但是还未push到远程个人repository;

3. 要回退的commit的代码已经push到远程的个人分支,但是还未merge到公共的repository;

4. 要回退的commit的代码已被merge(合入)到公共的repository。

git reset有三个参数soft、mixed、hard分别对应head的指针移动、index(暂存区)以及工作目录的修改,当缺省时,默认为mixed参数。

git revert与reset的区别是git revert会生成一个新的提交来撤销某次提交,此次提交之前的commit都会被保留,也就是说对于项目的版本历史来说是往前走的。而git reset 则是回到某次提交,类似于穿越时空。

冲突解决

【解决本地和远程仓库冲突,当需要pull时提示本地和远程仓库有冲突时】

1. 将本地修改的文件添加到暂存区

git add filename

2. 将本地修改存储起来

git stash

可以通过git stash list查看暂存的内容stash@{0}就是刚才修改的内容

3. pull远程仓库

git pull

git pull <远程主机名> <远程分支名>:<本地主机名>

4. 还原暂存的内容

git stash pop stash@{0}

撤销检查

撤销对某个文件的修改,还原成历史版本,相当于cc的撤销检出

git checkout -- xxx.java (带--)

删除文件

git删除代码的时候务必使用git -rm -r

不要使用rm -rf等linux命令,或者在文件夹里面删除,然后再git add

这样在gerrit会显示冲突(虽然强行提交也没有问题,但是非常不建议这样操作)

去掉换行符自动转换

git config --global core.autocrlf false (!关闭自动转换换行符命令)

git config --global core.safecrlf true

防止提交字符乱码

git config --global gui.encoding utf-8

git config --global core.quotepath false

git config --global i18n.commit.encoding utf-8

git config --global i18n.logoutputencoding utf-8

查看用户名和邮箱地址

$ git config user.name

$ git config user.email

修改用户名和邮箱地址

$ git config --global user.name "username"

$ git config --global user.email "email"

撤回commit操作

写完代码后,我们一般这样:

git add . //添加所有文件

git commit -m "本功能全部完成"

执行完commit后,想撤回commit,如何操作?

git reset --soft HEAD

如何忽略.gitignore文件本身

git rm -r --cached .gitignore

git add .

git commit -m 'update .gitignore'

在使用Git的过程中,时常会出现这样一种情况,明明已经提前写好了规则,但是却不起作用,导致每次仍需要重复提交规则,让人难以忍受。

其实是因为这个文件里的规则对已经追踪的文件是没有效果的,所以我们需要使用rm命令清除一下相关的缓存内容。这样文件就会以未追踪的形式出现,然后再重新添加提交一下规则,此时再运行一下git status指令就可以发现,.gitignore文件变为了untrack。

实用干货分享(3)- Git常用操作干货分享的更多相关文章

  1. 版本控制工具——Git常用操作(上)

    本文由云+社区发表 作者:工程师小熊 摘要:用了很久的Git和svn,由于总是眼高手低,没能静下心来写这些程序员日常开发最常用的知识点.现在准备开一个专题,专门来总结一下版本控制工具,让我们从git开 ...

  2. git报错:'fatal:remote origin already exists'怎么处理?附上git常用操作以及说明。

    git添加远程库的时候有可能出现如下的错误, 怎么解决? 只要两步: 1.先删除 $ git remote rm origin 2.再次执行添加就可以了. ---------------------- ...

  3. git常用操作 配置用户信息、拉取项目、提交代码、分支操作、版本回退...

    git常用操作 配置用户信息.拉取项目.提交代码.分支操作.版本回退... /********git 配置用户信息************/ git config --global user.name ...

  4. Git常用操作(二)

    仓库拉取 git clone XXX 修改仓库链接 $ git config -l # 显示coding列表 $ git config --get remote.origin.url # 返回orig ...

  5. 版本控制工具——Git常用操作(下)

    本文由云+社区发表 作者:工程师小熊 摘要:上一集我们一起入门学习了git的基本概念和git常用的操作,包括提交和同步代码.使用分支.出现代码冲突的解决办法.紧急保存现场和恢复现场的操作.学会以后已经 ...

  6. 分享 | Git常用的一些命令

    最近,各个项目团队已经全面从svn转向Git 近期将会分享一些Git的常用操作及使用经验: 先了解下工作中一些需要用到的命令: --------------------------- Git基本常用命 ...

  7. (数据科学学习手札141)利用Learn Git Branching轻松学习git常用操作

    1 简介 大家好我是费老师,Git作为世界上最流行的版本控制系统,可以说是每一位与程序打交道的朋友最值得学习的软件之一.除了管理自己的项目,如果你对参与开源项目感兴趣,那么Git更是联结Github. ...

  8. git 常用操作总结

    廖雪峰博客的git 教程写得不错, 很详细,但是却总结的不是很好. 这里哥再详细总结一遍吧! Git鼓励大量使用分支: 查看分支:git branch 创建分支:git branch 切换分支:git ...

  9. Git常用操作汇总(转)

    如果一个文件被删除了,可以使用切换版本号进行恢复.恢复方法: 先确定需要恢复的文件要恢复成哪一个历史版本(commit),假设那个版本号是: commit_id,那么 git checkout com ...

  10. git 常用操作

    查看某文件的某些行的变化历史: $ git log --pretty=short -u -L 2003,2005:Executor.cpp http://stackoverflow.com/quest ...

随机推荐

  1. C# 如何理解装箱和拆箱 ?

    装箱和拆箱就是C# 中数据类型的转换 : 装箱:值类型转换对象类型(引用类型,复杂类型) 拆箱:对象类型转换值类型 object obj=null; //引用类型 obj=1; //装箱 boxing ...

  2. .NET云原生应用实践(二):Sticker微服务RESTful API的实现

    本章目标 完成数据访问层的基本设计 实现Sticker微服务的RESTful API 引言:应该使用ORM框架吗? 毋庸置疑,Sticker微服务需要访问数据库来管理"贴纸"(也就 ...

  3. 妙用编辑器:使用Notepad--正则表达式从命令结果报文快速生成新命令

    应用场景 日常工作中有些维护场景,比如检查设备状态,执行查询命令后,得到精简结果报文,如果要更深入的检查状态,可能还要执行其他命令,逐个对象进行查询,这里涉及到快速从报文生成查询指令的功能. 比如有如 ...

  4. js中window全局变量

    .markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...

  5. 警告:攻击者利用 SnoarQube 漏洞盗取国内多个机构的大量源码!

    2021 年 10 月 22 日,国外知名媒体 cybernews 发文称,有未知攻击者攻击并渗透了博世 iSite 的服务器,并盗取了这家制造业巨头的 5G 物联网连接平台的源代码. 攻击者声称通过 ...

  6. 【原创】dell戴尔笔记本充电头4530改装typeC口过程记录笔记本电源改装c口三路接线定义指南(图解)

    在淘宝淘一个备用笔记本电脑,要求便携能用,最重要便宜(如果不便宜买了就想高价卖了) 选择了xps13 L322x,键盘屏幕有瑕疵,打折下来价格170左右,换了个键盘20.整体重量1.3kg左右,大小A ...

  7. Java面试题及答案整理汇总(2024最新版)

    前言 辞退了老板,准备找下家,又要开始面试了,不得不准备准备八股文,还是很有必要针对性的刷一些题,很多朋友的实战能力很强,但是理论比较薄弱,要多准备准备理论知识,攻克面试官.这是我在全网寻找稍微比较完 ...

  8. 3.11 Linux删除空目录(rmdir命令)

    和 mkdir 命令(创建空目录)恰好相反,rmdir(remove empty directories 的缩写)命令用于删除空目录,此命令的基本格式为: [root@localhost ~]# rm ...

  9. CommonsCollections3(基于ysoserial)

    环境准备 JDK1.7(7u80).commons-collections(3.x 4.x均可这里使用3.2版本).javassist(3.12.1.GA) JDK:https://repo.huaw ...

  10. 解析Mina代码三部曲

    首先,Mina是什么?能帮我们做什么?我研究一个新技术的时候,首先问的就是这样的问题.我个人的理解就是Mina是一个关注于通讯层的框架,任何需要底层通讯的应用,都可以使用它. AD:2013大数据全球 ...