1. 克隆远程仓库的代码到本地

git clone git@xxx.git
拉取下来默认分支名为 master

2. 拉取最新代码更新到本地

如果本地代码库没有任何修改, 直接 git pull
如果本地代码有修改,但是没有提交或者暂存,git pull时会报错;提醒你有未提交/暂存的修改。
此时,你需要根据自己需求,要么使用git stash将修改的内容暂存起来,
要么将修改git commit -m “注释内容” 进行提交,注释内容主要用来描述本次修改内容。

3. 创建本地分支

使用 git checkout -b 分支名 来创建分支,如果分支名不存在,则会创建一个新的分支并切换到新建分支,
如果分支名存在,则会直接切换到分支。

4. 在本地分支上进行修改操作,并提交

假如我们在本地名为master的分支上进行了修改,

  • 首先我们需要利用 git add . 将添加当前修改,也可以 git add 目标文件名 添加指定文件;可以使用git status 查看当前的状态;如果有某些文件在.gitignore文件里面被忽略了不让add的话, 我们可以使用 git add -f 目标文件名 进行强制添加;
  • add完之后,我们使用git commit -m “注释内容” 提交;
  • commit之后,我们使用git log 可以查看刚刚的提交记录,包括提交时写的注释内容;如果你做了不止一次修改,不想每次都重新用新的注释内容进行提交,不想要每次都生成一个新的commit节点,那么你可以使用git commit --amend 将第二次提交结合上一次的提交内容合成一个commit节点;
  • 最后,我们想将提交的修改push到远端分支上,使用git push 远端节点,假如我们想提交到远端的master分支上,我们使用git push origin master 进行不覆盖式的提交,如果想用本地的代码完全覆盖掉远端的分支,使用git push -f origin master 强制提交。

5. 删除远端分支

  • 删除远端分支
    git push origin --delete 远端分支名
  • 删除本地分支
    git branch -d 本地分支名
    git branch -D 本地分支名

6. git pull 和 git pull -r 的区别

git pull = git fetch + git merge
git pull -r = git fetch + git rebase
假设有个场景,A和B都需要push代码到origin的master上,A和B拉取的代码后,新建了自己的分支进行修改,并要提交到master上;

此时A的修改内容先提交到origin上;

那么B在提交前需要拉取最新的代码(包含A的修改的代码D),此时B有两个选择:

  • 如果他使用git pull origin master 拉取代码,使用git
    log
    查看提交记录,此时可以看到有一个commit节点叫Merge xxxxxxxxxx… 这样会形成一个菱形的提交记录;

  • 如果使用git pull -r origin master 可以避免这种菱形提交,会将B的提交rebase到最新master节点上,此时可能会遇到的问题是,如果B的提交和A的提交有交集的地方,会引起冲突,如果这种情况,会提示你先解决冲突conflict,需要B去比较与A的提交冲突的地方,解决完冲突之后,add更新下B的修改后,执行git rebase --continue 就可以继续pull -r的过程;过程中如果觉得有任何操作失误,可以使用git rebase --abort 随时停止pull rebase的过程,并且分支会回到rebase开始前的状态。

7. 将分支A的修改提交到分支B

有时候我们可能需要将分支A上做的一些修改直接提交分支B上,我们先切换到分支B,提前git log看下分支A上需要的节点号是多少,使用git cherry-pick commit节点号,就可以将在A上做的某些改动直接pick到B上。

8.修改某次的commit内容

有些时候很多个提交节点后,发现某个节点上的修改有问题,希望回退到某个节点进行修改,此时我们可以使用git rebase -i commit节点号回退到你希望修改的节点的前一个节点处,就可以看到你需要修改的节点,我们将该节点前的pick改成edit 后保存退出,然后你就可以在这个节点继续进行修改,修改结束后使用git commit --amend进行提交,这个操作会将你当前修改合并到这个commit节点之前的修改中,提交后使用git rebase --continue 我们就可以成功回到最新的修改节点啦~

9. 还有一些比较暴力但是很好用的命令

  1. git reset --hard commit节点号
    这个命令很暴力,但是很快,当你搞不清那些节点的时候,不知道自己提交了什么鬼,想要恢复到你想回去的某次提交的时候可以使用,
  • 先用git log 查看一下之前commit的节点,找到你想退回到的某个commit id,复制下来

    比如这里我想退回到最出的origin/master,其commit节点号是d9ab27dc42c753b9a1bb2163221b73f63bd490af 那么我可以使用
    git reset --hard d9ab27dc42c753b9a1bb2163221b73f63bd490af 回到这个节点。
  1. 有时候会用到 git push -u origin 分支名
  2. 使用 git squash 将很多个commit节点进行合并
  3. 本地创建分支 git checkout -b 分支名 并推至远端分支(不存在)
    使用 git push --set-upstream origin 分支名
  4. 推送本地分支至远端,并创建远程分支
    git push <远程主机名> <本地分支名>:<远程分支名>
  5. 未完待续~

常用的git命令,基本工作够用了相关推荐

  1. git clone 多个_软件测试知识点 | 测试过程常用的Git命令

    testkuaibao|软件测试自学公众号 点击上图进入软件测试面试题题库,面试题都是有相应的参考答案,希望对小伙伴们有所帮助 前言 目前,在版本控制系统中Git已经被广泛使用,并且很多技术团队也会逐 ...

  2. 开发常用的Git命令

    开发离不开Git命令 掌握Git命令的重要性不言而喻 开发第一步是从gitup或者gitlab上克隆项目下来 1. git clone 示例: git clone +gitlab地址 git clon ...

  3. 关于常用的git命令列表

    我博客园中所写的git内容几乎都是看的蒋鑫老师的<git权威指南>这本书实在太好了. 常用的Git命令. git add  添加到暂存区 git add interactive  交互式添 ...

  4. java开发中常用的Git命令详解

    java开发中常用的Git命令详解(IDEA内如何操作) 一:写这篇文章的目的是什么? 二:使用场景在哪里? 1:当我们要使用idea去git仓库拉代码时,首先我们的idea得配置git工具 2:项目 ...

  5. git 查看分支编码_12个常用的Git命令,赶紧记一波!

    今天齐姐简单讲下 Git 的实现原理,知其所以然才能知其然:并且梳理了日常最常用的 12 个命令,分为三大类分享给你. 本文的结构如下: 作者和开发原由 Git 的数据模型 常用命令 资源推荐 作者和 ...

  6. 常用的git命令大全

    下面的是我们在日常工作中常用到的git 命令.大家工作中有什么常用到的命令被我遗漏的都可已在评论区反馈我会更新上去.以便以后查阅: 下面是我整理的常用 Git 命令清单.几个专用名词的译名如下.Wor ...

  7. linux 常用的git命令,git 常用命令详解

    最重要2命令: git clone git://github.com/schacon/grit.git 从服务器上将代码给拉下来 git pull 本地与服务器端同步 一. Git 命令初识 在正式介 ...

  8. Git学习系列之一些常用的Git命令收录更新ing

    不多说,直接上干货!  前言 对于Git工具,有必要整理和总结一些常用实用的命令. http://p.primeton.com/articles/53cce3a3e138236138000026 ht ...

  9. 20 个最常用的 Git 命令,码住!

    在这篇文章中,我将介绍在使用 Git 时最常使用的 20 个命令. 作者 | Sahiti Kappagantula 译者 | 弯月,责编 | 屠敏 以下为译文: 以下是这些Git命令: git co ...

  10. 查看git当前tag_常用的 Git 命令清单

    公众号关注"杰哥的IT之旅", 选择"星标",重磅干货,第一时间送达! 常用Git命令清单 一般来说,日常使用只要记住下图6个命令,就可以了.但是熟练使用,恐怕 ...

最新文章

  1. 20110609 搭域控,布线,设计网络,杂事一堆啊
  2. Android GridView的使用方法
  3. CentOS64位下python2.6升级到2.7的详细教程
  4. 设计模式笔记二:抽象工厂模式
  5. mysql删除emp表的语句_MySQL删除数据表(DORP TABLE语句)
  6. 【excel技巧读书笔记015】同时关闭多张工作薄
  7. c 语言 volatile 关键字
  8. css3仿手机版淘宝商品并列显示
  9. 核磁共振电子计算机断层扫描术,计算机断层扫描(CT)和核磁共振(MRI) 的区别...
  10. mysql neq_ecshop中smarty比较操作符(eq,ne,neq)含义
  11. 冰蝎Behinder_v4.0
  12. [JavaScript]只需一行代码,轻松搞定快捷留言-V2升级版javascript
  13. 【MySQL 数据库】JDBC 编程之 Java 连接 MySQL
  14. java-php-python-ssm校园疫情防控管理系统计算机毕业设计
  15. Clickhouse 生成日历表
  16. 软件测试-PR脚本参数化的两种方法
  17. 小白,想入门程序员,应该从什么开始学,顺序是什么?
  18. 1.《小狗钱钱》读书笔记
  19. ubuntu软件安装方法大全
  20. Redis的安装及其使用

热门文章

  1. android模拟器 百度云盘,MEmu逍遥安卓模拟器海外纯净版
  2. 【windows下直接把文件打包成war包】
  3. 福州大学计算机学院李敏,福州大学厦门工艺美术学院
  4. PbootCMS微信小程序API的封装使用教程
  5. 基于PT2262/PT2272的4路遥控电路
  6. 扒开ARM中断控制器的底裤来看看!
  7. lib与dll的关系(详解静态链接库和动态链接库)
  8. matlab 构建雅可比矩阵,matlab jacobian函数
  9. 数据结构(王道版本,主讲人:闲鱼学长)P19-P31
  10. 微软在盗版黑屏事件可能犯下极大的错误