初操作---设置用户名

  1. git config --global user.name "any name"  //设置全局project的用户名
  2. git config --global user.email "any email"  //设置全局project的邮箱
  3. git config --global --list   //查看当前用户的全局配置   用户名和邮箱
  4. 在VS Code中每次更新代码都会要输入账号密码,方便起见,可以配置一下让 git 记住密码账号。
  5. git config --global credential.helper store

建立远程仓库链接

  1. 如果是从服务器 clone 下来的代码,会自动配置一个叫 origin 的远程仓库链接
  2. git remote -v  // 查看配置的远程仓库链接
  3. git remote add <远程仓库名> <远程仓库url>    //添加远程库链接
  4. git remote rm <远程仓库名>   //移除远程仓库
  5. git remote rename <oldname> <new name> //远程仓库重命名

提交代码过程

  1. 提交之前,需要 pull 一下,然后处理冲突
  2. git add -A   //添加所有文件,也可以只提交更改的文件 git add .
  3. git add .   //添加更改的文件
  4. git commit -m "描述代码信息"
  5. git push -u <远程库的名称> <远程库的分支>  // -u 表示指定<当前远程库> 为默认远程仓库,以后就直接push,不用带参数
  6. 如果你确定远程仓库的分支上那些代码都不需要了,那么直接 push 后面加一个 -f ,强行让本地分支覆盖远程分支
  7. git push <远程仓库名> <远程库的分支> -f

提交代码出现冲突

  1. git push 会出问题,应该先pull 一下,但是 pull 的时候又可能会出现分支冲突,
  2. 这时可能由于版本问题会报错,可能遇到 refusing to merge unrelated histories 这个提示是因为两个仓库不同,发现 refusing to merge unrelated histories,无法 pull。
  3. 要把两个不同的项目合并,git 需要添加一句代码 ,这句代码是在 git 2.9.2 版本发生的,最新的版本需要添加 –allow-unrelated-histories。查看git 版本,git --version
  4. 假如我们的远程仓库是 origin,分支是 master,那么我们 需要这样写  git pull origin master --allow-unrelated-histories
  5. 然后再  git push -u <远程库的名称> <远程库的分支>

拉取代码出现冲突

  1. git pull 时本地文件和远程服务器文件冲突,出错信息如下:
  2. error: Your local changes to 'contextTempl.java' would be overwritten by merge.  Aborting.
  3. Please, commit your changes or stash them before you can merge.
  4. 解释:这个意思是说更新下来的内容和本地修改的内容有冲突,先提交你的改变或者先将本地修改暂时存储起来。
  5. 在 VS Code 中,错误提示是:在签出前 请清理存储库工作树
  6. 在这种情况下,您可以将更改隐藏起来,然后执行git pull,然后解压缩;
  7. git stash  //先将本地修改存储起来
  8. git pull  //拉取远程
  9. git stash pop //还原暂存内容

代码克隆所有分支

  git clone 只能 clone 远程库的 master 分支,无法 clone 所有分支,解决方法去下:

  1. git clone http://xxx.xxx.com/project/.git ,这样在git_work目录下得到一个project子目录
  2. cd project
  3. git branch -a,列出所有分支名称如下:remotes/origin/dev     remotes/origin/release
  4. git checkout -b origin/dev dev,作用是 checkout 远程的 dev 分支,在本地起名为 dev 分支,并切换到本地的 dev 分支
  5. git checkout -b origin/release release,作用参见上一步解释
  6. git checkout dev,切换回 dev 分支,并开始开发。

  查看分支:git branch

  创建分支:git branch <name>

  切换分支:git checkout <name>

  创建+切换分支:git checkout -b <name>

  合并某分支到当前分支:git merge <name>

  删除分支:git branch -d <name>

指令简写

  -d    --delete:删除

  -D   --delete --force的快捷键

  -f     --force:强制

  -m   --move:移动或重命名

  -M   --move --force的快捷键

  -r     --remote:远程

  -a     --all:所有

git fetch 和 git pull 的区别

  1. git fetch <远程主机名> <分支名>
  2. 最常见的命令如取回 origin 主机的 master 分支:
  3. git fetch origin master  ,从远程主机的master分支拉取最新内容
  4. git merge FETCH_HEAD , 将拉取下来的最新内容合并到当前所在的分支中
  5. git pull <远程主机名> <远程分支名>:<本地分支名>
  6. git pull origin master  , 如果远程分支是与当前分支合并,则冒号后面的部分可以省略

git 撤销操作、恢复文件

  1. 如果误删了某文件,需要 git status 先看下工作区是否 commit 过,如果没有 commit ,可以看到删除的文件名及路径,是红色的
  2. 直接从工作区拿删除的文件 git checkout -- <path + file>
  3. 如果已经commit 了,那么git status 看到的删除的文件及路径是绿色的,这时checkout 已经没用了
  4. 可以把暂存区的修改撤销掉(unstage),git reset HEAD <path + file>,重新放回工作区,然后 git checkout -- <path + file> 取回

git 版本回退

远程分支回退有三种方法:

  1. 自己的分支回滚直接用 reset
  2. 公共分支回滚用 revert
  3. 错的太远了直接将代码全部删掉,用正确代码替代

本地分支版本回退:

  1. 先找到要回退的版本的 commit id ,git reflog
  2. 可以根据commit id ,查看先前版本的信息,git log <commit id>  或者 git show <commit id>,退出git log 状态,英文状态下按q
  3. 回退版本 git reset --hard <commit id>

自己的远程分支版本退回:

  如果你的错误提交已经推送到自己的远程分支了,那么就需要回滚远程分支了。

  1. git reflog
  2. git reset --hard <commit id>
  3. 然后强制推送到远程分支,git push -f
  4. 本地分支回滚后,版本将落后远程分支,必须使用强制推送覆盖远程分支,否则无法推送到远程分支

公共远程分支回退:

  回滚公共远程分支和回滚自己的远程分支是有区别的,如果你回退公共远程分支,把别人的提交给丢掉了怎么办?

Git 工具总结的更多相关文章

  1. 【转】第 02 天:在 Windows 平台必裝的三套 Git 工具

    原文网址:https://github.com/doggy8088/Learn-Git-in-30-days/blob/master/docs/02%20%E5%9C%A8%20Windows%20% ...

  2. windows中使用Git工具连接GitHub(配置篇)

    Git在源码管理领域目前占很大的比重了,而且开源的项目很多都转到GitHub上面了.例如:jQuery, reddit, Sparkle, curl, Ruby on Rails, node.js,  ...

  3. Git详解之六 Git工具(转)

    Git 工具 现在,你已经学习了管理或者维护 Git 仓库,实现代码控制所需的大多数日常命令和工作流程.你已经完成了跟踪和提交文件的基本任务,并且发挥了暂存区和轻量级的特性分支及合并的威力. 接下来你 ...

  4. Git详解之六:Git工具

    Git 工具 现在,你已经学习了管理或者维护 Git 仓库,实现代码控制所需的大多数日常命令和工作流程.你已经完成了跟踪和提交文件的基本任务,并且发挥了暂存区和轻量级的特性分支及合并的威力.(伯乐在线 ...

  5. 使用git工具将项目上传到github

    注册github账号 https://github.com/ 安装git工具: https://git-for-windows.github.io/ 上面的准备工作完成后,现在开始操作. 一.进入gi ...

  6. Git工具的使用教程

    Git 是一种版本控制工具,也叫作版本管理软件(分布式管理软件).这里介绍Git的基本使用步骤,关于 Git 更详细的介绍,读者可以参考其官方网站提供的文档. 1  安装Git 在Ubuntu系统中安 ...

  7. 使用git工具快速push项目到github(精简)

    Dear Weber ,相信有很多刚开始接触前端的程序猿,在刚接触到git工具传项目到github上时会遇到一些问题,那么下面的话呢,我就整理一下一个大致的思路提供给大家参考: 工具:git (自行下 ...

  8. 代码管理工具:使用github和git工具管理自己的代码

    一.git工具和账户创建 1.1 安装 Git 是 Linus Torvalds 最近实现的源代码管理软件."Git 是一个快速.可扩展的分布式版本控制系统,它具有极为丰富的命令集,对内部系 ...

  9. 使用git工具上传自己的程序到github上

    一:前期准备 可以运行的项目 github账号 git工具 二:开始操作 1.创建个人github仓库 写自己项目的名字,描述,权限,README 2.新建结束后会进入如下界面 3.复制仓库地址 4. ...

  10. Git工具使用

    GIT(分布式版本控制系统) Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.Git的读音为/gɪt/. Git是一个开源的分布式版本控制系统,可以有效.高速的处理从 ...

随机推荐

  1. MyBatis学习日记(三):戏说MyBatis配置文件

    properties标签 properties标签可以用来加载别的配置文件,比如可以加载数据库的配置文件,jdbc.properties. 下面是jdbc.properties jdbc.driver ...

  2. 老白关于rac性能调优的建议(10gRAC)

    RAC应用设计方面需要在底层做很有设计.虽然ORACLE的售前人员总是说RAC的扩展性是透明的,只要把应用分到不同的节点,就可以平滑的扩展系统能力了.而事实上,RAC的CACHE FUSION机制决定 ...

  3. 【转】手把手教你读取Android版微信和手Q的聊天记录(仅作技术研究学习)

    1.引言 特别说明:本文内容仅用于即时通讯技术研究和学习之用,请勿用于非法用途.如本文内容有不妥之处,请联系JackJiang进行处理!   我司有关部门为了获取黑产群的动态,有同事潜伏在大量的黑产群 ...

  4. FineUIMvc的分部视图连接器 --VS-- FineUIPro的用户控件连接器

    [FineUIPro]用户控件 在FineUIPro中,我们可以将公用的部分定义为一个用户控件,然后添加到页面中. 一个简单的示例:http://pro.fineui.com/#/usercontro ...

  5. JVM进程占用CPU过高问题排查

    上午收到报警,某台机器上的CPU负载过高,通过逐步的排查,解决了问题,下面记录一下整个排查的过程. 首先,登录上对应的机器,通过top命令找到占用CPU过高的进程ID,也就是PID,为29126, 然 ...

  6. nginx配置https双向验证(ca机构证书+自签证书)

    nginx配置https双向验证 服务端验证(ca机构证书) 客户端验证(服务器自签证书) 本文用的阿里云签发的免费证书实验,下载nginx安装ssl,文件夹有两个文件 这两个文件用于做服务器http ...

  7. 2019-04-04 Mybatis学习知识点

    1. 比较#和$的区别 #是占位符?,$是字符串拼接.因此使用$的时候,如果参数是字符串类型,那么要使用引号 尽量使用#而不是$ 当参数表示表名或列名的时候,只能使用$ 2. 多参数时候 配置文件中使 ...

  8. css块居中

    1.已知宽高的块级元素居中: 2.未知宽高的块级元素居中:

  9. slf4j+log4j2模式的日志搭建

    前言:今天打算为大家介绍一下我们我们在项目中必须得有的一个部分——日志!是的,就是那些让我们看着头疼的东西~~~好的日志可以帮助团队成员快速发现并解决问题,用好了可以大幅度提高代码缺陷修复效率!言归正 ...

  10. 内部yum仓库制作

    有些安装收到网络隔离(申请一个到DMZ区的通行证很困难) 使用yum的命令工具,在有网络环境下同步我们的yum仓库,并用http服务器代理和制作repo源进行内部安装. 实操: [root@maste ...