1. 配置

1.1 设置全局用户名和邮箱

git config --global user.name xxx

git config --global user.email xxx@xxx.com

上述命令是设置全局用户名和邮箱,设置完成后,所有git仓库的用户名和邮箱都是一样的。

建议:

在公司电脑中,建议将用户名设置为姓名全拼音或者域账号,建议将邮箱设置为公司邮箱,方便团队成员快速识别。

1.2 设置某个git仓库的用户名和邮箱

如果你是某个开源项目的贡献者,每次提交代码时肯定希望显示的是自己的昵称和个人邮箱,而不是全局设置里的域账号和公司邮箱,此时则可以单独对这个git仓库设置用户名和邮箱。

首先,切换到目标git仓库的根目录,打开终端窗口,执行如下命令:

git config user.name xxx

git config user.email xxx@163.com

执行完命令后,查看.git文件夹下的config文件,会看到底部增加了刚刚配置的用户名和邮箱。

注意事项:上述命令仅对当前git仓库生效,不影响全局配置。

1.3 查看用户名和邮箱

git config user.name

git config user.email

1)如果是在某个git仓库下执行上述命令,并且当前git仓库单独设置过用户名和邮箱,返回的是当前git仓库的用户名和邮箱,否则,返回的是全局的用户名和邮箱。

2)如果不是在某个git仓库下执行上述命令,返回的是全局的用户名和邮箱。

1.4 查看全部配置

git config --list

1)如果是在某个git仓库下执行上述命令,返回的是全局配置+当前项目的配置。

2)如果不是在某个git仓库下执行上述命令,返回的是全局配置。

2. 拉取代码

2.1 git clone

如果要将远程git仓库的代码克隆到本地,可以使用git clone命令,如下所示:

git clone https://github.com/mybatis/mybatis-3.git

命令执行完成后,会自动创建一个名为mybatis-3的文件夹。

如果你想自定义生成文件夹的名字,可以进行指定,如下所示:

git clone https://github.com/mybatis/mybatis-3.git mybatis

命令执行完成后,会发现自动创建了一个名为mybatis的文件夹,而不是mybatis-3。

2.2 git pull

如果团队成员有提交代码,想要拉取最新代码到本地,可以使用git pull命令,如下所示:

git pull

3. 分支

3.1 查看本地分支

git branch

前面带*并高亮显示的代表当前分支。

3.2 查看远程分支

git branch -r

3.3 查看所有分支

所有分支包含本地和远程的分支

git branch -a

3.4 创建分支

1)创建本地分支(基于本地分支创建)

git branch fix_0609_npe

该命令是基于当前分支创建(一般是基于master分支并保证代码最新),并且创建成功后仍然停留在当前分支,不会跳转到新建的分支。

2)创建本地分支(基于远程分支创建)

git checkout -b fix_0609_npe origin/master

以上命令会基于远程master分支创建本地分支fix_0609_npe,并切换到分支fix_0609_npe。

特别注意:此时本地分支fix_0609_npe关联的远程分支是master

3)创建远程分支

git push origin fix_0609_npe:fix_0609_npe

以上命令会创建一个名为fix_0609_npe的远程分支。

4)本地分支与远程分支建立关联

git branch --set-upstream-to=origin/fix_0609_npe fix_0609_npe

以上命令会将本地分支fix_0609_npe与远程分支fix_0609_npe建立关联。

可以通过git branch -vv命令来查看本地分支与远程分支的关联关系:

git branch -vv

3.5 切换分支

切换分支可以使用git checkout命令。

1)切换到已存在的分支

git checkout test

2)切换到不存在的分支(基于本地当前分支自动创建)

git checkout -b fix_0609_npe

以上命令会基于当前分支创建新分支fix_0609_npe,并切换到该分支。

3)切换到不存在的分支(基于指定远程分支自动创建)

git checkout -b fix_0609_npe origin/fix_0609_npe

4)切换到上一个分支

git checkout -

3.6 删除分支

删除分支时需要先切换到其它分支,否则分支无法删除

git branch -d fix_0609_npe

如果某些分支无法正常删除,可以强制删除:

git branch -D fix_0609_npe

删除远程分支:

git push origin --delete fix_0609_npe

4. 提交修改

提交前,可以通过git status查看下文件修改状态:

git status

然后使用git add命令将文件添加到暂存区:

git add .

然后使用git commit命令提交文件:

git commit -m "code optimize"

以上2个命令可以通过下面一行命令来实现:

git commit -am "code optimize"

最后执行git push命令将本地commit推送到远程分支:

git push

5. 版本回退

如果代码commit之后,想撤销,可以使用git reset命令,如下所示:

git reset --soft HEAD^

以上命令撤销后,会保留修改的内容。

如果确认不需要保留修改的内容,可以将soft换位hard,如下所示:

git reset --hard HEAD^

说明:

HEAD^表示上一个版本,即上一次commit,等价于HEAD~1,

如果想撤销最近2次的commit,可以使用HEAD~2。

也可以回退到指定的commit_id(可通过git log命令查看commit_id),如下所示:

 git reset --hard e094633609aeebd664126dfc48b602157b2dabbc

说明:commit_id为e094633609aeebd664126dfc48b602157b2dabbc的内容修改还存在

如果远程分支也要回退,需要执行以下命令:

git push --force

6. 暂存

经常遇到某个需求开发了一部分代码,然后被打断去处理线上bug,此时就需要先将本地的修改暂存起来,待线上bug处理后,再将本地

的修改还原,git stash命令可以完美解决这种场景。

6.1 暂存修改

可以使用如下命令,将本地的修改暂存起来:

git stash

但推荐暂存时添加清晰的备注,方便区分,如下所示:

git stash save "code optimize"

6.2 查看暂存列表

git stash list

6.3 应用某个暂存

git stash apply

默认使用第一个暂存,等价于下面这样的写法:

git stash apply stash@{0}

如果想使用其它暂存,可以指定顺序,比如第2个,就是stash@{1},依次类推:

git stash apply stash@{1}

说明:该命令不会将对应的暂存从暂存列表中删除

6.4 应用并删除某个暂存

git stash pop

默认使用第一个暂存,等价于下面这样的写法:

git stash pop stash@{0}

如果想使用其它暂存,可以指定顺序,比如第2个,就是stash@{1},依次类推:

git stash pop stash@{1}

说明:该命令会将对应的暂存从暂存列表中删除

6.5 删除暂存

git stash drop

默认删除第一个暂存,等价于下面这样的写法:

git stash drop stash@{0}

如果想删除其它暂存,可以指定顺序,比如第2个,就是stash@{1},依次类推:

git stash drop stash@{1}

如果想删除所有的暂存,可以执行以下命令:

git stash clear

7. 合并所有改动

合并代码的场景有很多,比如将master分支合并到自己的开发分支,将开发分支合并到公共分支test、uat。

git merge master

以上命令代表将本地master分支的代码合并到当前分支。

git merge origin/master

以上命令代表将远程master分支的代码合并到当前分支。

8. 合并部分改动

因为git merge命令合并的是所有改动,发生冲突的几率是很高的,解决冲突非常耗时且容易出错,所以在某些场景下,可以只合并部分改动,此时可以使用git cherry-pick命令。

以下命令,是将commit id为aa6b6922fc19173c090c64a4c1d399265e4f0500的提交合并到当前分支:

git cherry-pick aa6b6922fc19173c090c64a4c1d399265e4f0500

也可以指定多个commit id:

git cherry-pick 12eef219da5d7f45892142ddeb107f496177274d aa6b6922fc19173c090c64a4c1d399265e4f0500

9. 特别注意

9.1 强制覆盖本地代码与远程仓库保持一致

如果发现远程master分支被污染后,应尽快将远程master分支还原,然后执行如下命令覆盖掉本地分支代码,与远程master分支保持一致:

git reset --hard origin/master

或者将本地master分支删除,重新基于远程master分支拉取:

git branch -d master

git checkout -b master origin/master

9.2 切换分支会把未提交的文件带到其它分支

假如在test分支修改了文件A,未提交,然后此时切换到uat分支时,如果没有冲突,文件A的修改会被带到uat分支,如果不注意的话,就容易被提交,发布到线上,造成bug。

避免措施:

  1. 切换分支时,检查下本地文件状态,尽量不要有未提交的文件,可以stash或者commit
  2. 提交代码前,尽量比对下修改内容,避免误提交

10. 其它

10.1 清空命令行

git clear

10.2 查看git 版本号

git version

10.3 IDEA Annotate 显示设置

IDEA默认显示的是Last Name,可以调整为显示Full Name,否则看到的可能是Zhang这样的,无法快速识别到是哪个人:

10.4 拉取或者合并代码提示需要输入commit message

Please enter a commit message to explain why this merge is necessary

解决方案:

1)按下esc键

2)输入:wq

3)按下回车键

10.5 git gc

有时执行git pull命令时,会提示下面这样的信息:

warning: There are too many unreachable loose objects; run 'git prune' to remove them.

原因是因为提交记录过多,导致本地的缓冲区占用太大,可以执行以下命令清理:

git gc --prune=now

【工具篇】git常用命令分享的更多相关文章

  1. 团队开发工具git常用命令

    Git 常用命令 Git配置 git config --global user.name "storm" git config --global user.email " ...

  2. Git 常用命令详解

    Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...

  3. Git 常用命令详解(二)

    Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...

  4. 【转】 Git 常用命令详解(二)----不错

    原文网址:http://blog.csdn.net/ithomer/article/details/7529022 Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如: ...

  5. git常用命令2

    一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r ...

  6. Git常用命令(转)

    目前开发的新项目使用的版本控制工具基本用的都是Git,老项目用的还是Svn,网上Git资源也很多,多而杂.我整理了一份关于Git的学习资料,希望能帮助到正在学习Git的同学. 一. Git 命令初识 ...

  7. Git常用命令清单笔记

    git github 小弟调调 2015年01月12日发布 赞  |   6收藏  |  45 5k 次浏览 这里是我的笔记,记录一些git常用和一些记不住的命令,这个笔记原本是基于 颜海镜的文章增加 ...

  8. 转 Git 常用命令大全

    一. Git 常用命令速查 git branch 查看本地所有分支 git status 查看当前状态  git commit 提交  git branch -a 查看所有的分支 git branch ...

  9. git常用命令3

    一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态git commit 提交git branch -a 查看所有的分支git branch -r 查看 ...

  10. Git 常用命令速查表(图文+表格)【转】

    转自:http://www.jb51.net/article/55442.htm 一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git comm ...

随机推荐

  1. Raspberry pi 上部署调试.Net的IoT程序

    树莓派(Raspberry pi)是一款基于ARM 架构的单板计算机(Single Board Computer),可以运行各种 Linux 操作系统,其官方推荐使用的 Raspberry Pi OS ...

  2. sql server版本太老,java客户端连接失败问题定位

    背景 最近半路接手了一个系统的优化需求,这个系统有个遗留问题还没解决,随着新需求的上线,系统正式开放使用,这个遗留问题也必须解决. 这个系统大概是下面这样的,支持录入各种数据源的信息(ip.端口.数据 ...

  3. Flutter的一些概念(二)

    注:本文同步发布于微信公众号:stringwu的互联网杂谈 Flutter的一些概念(二) 1 flutter的核心渲染模块 当应用启动时flutter 会遍历所有的Widget 形成Widget 树 ...

  4. 一文搞懂SaaS架构建设流程:业务战略设计、架构蓝图设计、领域系统架构设计、架构治理与实施

    大家好,我是汤师爷~ SaaS架构建设是一项复杂的系统工程,不仅需要技术层面的实现,更要从业务战略.架构设计.治理与实施等多个维度进行全面规划. 一个成功的SaaS架构可以帮助企业降低IT成本.提升业 ...

  5. ZenPhoto pg walkthrough Intermediate

    nmap nmap -p- -A -sS 192.168.128.41 Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-01-13 07:17 U ...

  6. Codeforces Round 959 sponsored by NEAR (Div. 1 + Div. 2)

    题目链接:Codeforces Round 959 sponsored by NEAR (Div. 1 + Div. 2) 总结:Bwa两发,C读假题.发挥很一般,补题感觉到E都是能做的,红温. A. ...

  7. UNIDAC中TDataSet组件CachedUpdates属性使用

    官方方法组合示例,使用UpdatesPending属性可判断是否有修改在缓存区中

  8. docker官网镜像无法下载问题解决

    亲测可用,这个方法是由技术爬爬虾大佬提供,简单地说就是通过github上的docker_image_pusher项目,将国外docker镜像转存到阿里云私人仓库. 此方法需要你有一个github账号, ...

  9. 库卡机器人KR120示教器日常保养技巧

              库卡机器人KR120是一款高效.精准的工业机器人,广泛应用于各个领域.然而,要确保其长期稳定运行,日常的保养和维护至关重要.下面,我们将为您介绍库卡机器人KR120示教器的日常保养 ...

  10. vue - [04] 配置

    关闭ESLint. 001 || ESLint (1)定义   ESLint是一个插件化的JavaScript代码检查工具.在vue项目中,它可以检查.vue文件中的JavaScript代码(包括脚本 ...