一:GIT命令实战(码云)

https://oschina.gitee.io/learn-git-branching/

  1. 提交

    git commit

  2. 创建分支

    git branch <name>

  3. 切换分支

    git checkout <name>

  4. 合并分支

    git merge <name>

    git rebase <name>

  5. 分离HEAD

    git checkout <某个具体的提交记录>

  6. 相对引用(^)

    git checkout HEAD^

    git checkout HEAD~<num>

  7. 强制修改分支位置

    git branch -f <name>(eg:master) HEAD...(当前位置的父级个数)

  8. 撤销变更

    (local)git reset HEAD^

    (push)git revert HEAD

  9. 整理提交记录

    git cherry-pick ~ ~(某个提交记录,可单个可范围)

    git rebase -i HEAD~..(开始处理位置)

    提交一个记录的方法:移动到上一个记录,使用上述代码提交单个记录

  10. 下载仓库

    git clone

  11. o(orign)/master

    git checkout o/master

  12. 更新下载(单纯下载,不更新本地仓库)

    git fetch

  13. 正常更新

    git pull /= git fetch + git merge

二:GIT基础(廖雪峰网站)

https://www.liaoxuefeng.com/wiki/896043488029600

  1. 在Linux上安装Git
$ git
The program 'git' is currently not installed. You can install it by typing:
sudo apt-get install git
  1. 设置用户名和邮箱
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
  1. 创建版本库
$ mkdir learngit
$ cd learngit
$ pwd     #显示当前目录
/Users/michael/learngit
  1. 初始化仓库
$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/
  1. 把文件添加到仓库
$ git add readme.txt
  1. 把文件提交到仓库
$ git commit -m "wrote a readme file"   #-m后面输入的是本次提交的说明
[master (root-commit) eaadf4e] wrote a readme file
 1 file changed, 2 insertions(+)
 create mode 100644 readme.txt
  1. 命令git结果
$ git status
On branch master
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:   readme.txt

no changes added to commit (use "git add" and/or "git commit -a")
  1. 查看修改内容
$ git diff readme.txt
diff --git a/readme.txt b/readme.txt
index 46d49bf..9247db6 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,2 @@
-Git is a version control system.
+Git is a distributed version control system.
 Git is free software.
  1. 历史记录
$ git log --pretty=oneline
1094adb7b9b3807259d8cb349e7df1d4d6477073 (HEAD -> master) append GPL
e475afc93c209a690c39c13a46716e8fa000c366 add distributed
eaadf4e385e865d25c48e7ca9c8395c3f7dfaef0 wrote a readme file
  1. 版本回退
$ git reset --hard HEAD^
HEAD is now at e475afc add distributed
  1. 回到未来
$ git reset --hard 1094a      #git reset --hard commit_id
HEAD is now at 83b0afe append GPL
  1. 查询每一次命令,寻找哈斯值
$ git reflog
e475afc HEAD@{1}: reset: moving to HEAD^
1094adb (HEAD -> master) HEAD@{2}: commit: append GPL
e475afc HEAD@{3}: commit: add distributed
eaadf4e HEAD@{4}: commit (initial): wrote a readme file
  1. 修改过程

    第一次修改 -> git add -> 第二次修改 -> git add -> git commit

  2. 丢弃工作区的修改(1)/删错了
$ git checkout -- readme.txt  #git checkout -- file

16.丢弃工作区的修改(2)

$ git reset HEAD readme.txt   #git reset HEAD <file>
Unstaged changes after reset:
M   readme.
  1. 从版本库中删除该文件
# 命令git rm删掉,并且git commit

$ git rm test.txt
rm 'test.txt'

$ git commit -m "remove test.txt"
[master d46f35e] remove test.txt
 1 file changed, 1 deletion(-)
 delete mode 100644 test.txt
  1. 添加远程库
$ git remote add origin
$ git@server-name:path/repo-name.git

git remote add origin git@server-name:path/repo-name.git

  1. 内容推送
$ git push -u origin master #第一次
$ git push origin master
  1. 命令克隆库
git clone
#Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快
  1. 分支
# 查看分支:
$ git branch

# 创建分支:
$ git branch <name>

# 切换分支:
$ git checkout <name>
$ git switch <name>

# 创建+切换分支:
$ git checkout -b <name>
$ git switch -c <name>

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

# 删除分支:
$ git branch -d <name>
  1. 解决冲突

    首先解决冲突。解决冲突后,再提交,合并完成。解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交.

git log --graph #图形化
  1. 分支管理策略
$ git merge --no-ff -m "merge with no-ff" dev       #--no-ff参数,表示禁用Fast forward
Merge made by the 'recursive' strategy.
 readme.txt | 1 +
 1 file changed, 1 insertion(+)
  1. “储藏”功能
$ git stash
$ git stash pop   #回到工作现场
  1. 在master分支上修复的bug,想要合并到当前分支
$ git cherry-pick <commit>
  1. 强行删除分支
git branch -D <name>
  1. 查看远程库的信息
$ git remote   # -v显示更详细的信息
  1. 从本地推送分支
$ git push origin branch-name
# 推送失败,先用git pull抓取远程的新提交
  1. 在本地创建和远程分支对应的分支
$ git checkout -b branch-name origin/branch-name
# 本地和远程分支的名称最好一致
  1. 建立本地分支和远程分支的关联
$ git branch --set-upstream branch-name origin/branch-name
  1. 从远程抓取分支
$ git pull
  1. rebase操作
$ git rebase   # -i 图形操作
# 把本地未push的分叉提交历史整理成直线
  1. 创建标签
$ git tag <tagname>
# 用于新建一个标签,默认为HEAD,也可以指定一个commit id;

$ git tag -a <tagname> -m "blablabla..."
# 可以指定标签信息;

$ git tag
# 查看所有标签
  1. 操作标签
$ git push origin <tagname>
#推送一个本地标签;

$ git push origin --tags
#推送全部未推送过的本地标签;

$ git tag -d <tagname>
#删除一个本地标签;

$ git push origin :refs/tags/<tagname>
#删除一个远程标签

常用命令行(push码云)

第一步:建立并初始化本地的仓库
git init

第二步:添加所有文件到仓库中
git add
或者可以使用git add你想要添加的文件

第三步:将添加的文件提交到仓库中
git commit -m '备注'

第四步:上传之前要进行pull,将码云上的文件拉下来
git pull origin master

第五步:上传代码到码云仓库
git push -u origin master

GIT命令总结,so easy的更多相关文章

  1. 常用Git命令手册

    常用Git命令手册 此文只是对Git有一定基础的人当记忆使用,比较简略,初级学员强烈推荐廖雪峰老师的Git系列教程,通俗易懂,戳此处即可开始学习 1.安装Git Linux sudo apt-get ...

  2. Git初探--笔记整理和Git命令详解

    几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面c ...

  3. 工作中常用的git命令

    一 常用Git命令 git clone:(区分SSH or HTTP) git init:初始化仓库 二 Git命令详解 Git Bash下,cd /c git clone,从远程Git版本库克隆一份 ...

  4. 常用 Git 命令清单

    我每天使用 Git ,但是很多命令记不住. 一般来说,日常使用只要记住下图6个命令,就可以了.但是熟练使用,恐怕要记住60-100个命令. 下面是我整理的常用 Git 命令清单.几个专用名词的译名如下 ...

  5. 常look的Git命令

    常用的Git命令   命令  简要说明 git add 添加至暂存区 git add–interactive 交互式添加 git apply   应用补丁 git am  应用邮件格式补丁 git a ...

  6. ***Linux下使用git命令及github项目

    在linux下搭建git环境1.创建Github账号,https://github.com2.Linux创建SSH密钥: ssh-keygen  ##一直默认就可以了 3.将公钥加入到Github账户 ...

  7. 我所记录的git命令(非常实用)

    一.前言 记录一下工作中常用到的git命令,只是简单的笔记,欢迎大家交流... [ 顺便问下园友们,怎么感觉博客园发布的博客搜索有时都搜不到,后台编辑能填的都填写了,还是觉得搜索排名不高? 相同的标题 ...

  8. GIT命令行的使用

    新手了解 有不对的地方指点下 首先, 了解下什么是GIT,GIT是一款开元的分布式版本控制工具, 在世界上的所有分布式版本控制工具中,GIT是最简单,最流行,同时也是最常用的 相比于其他版本的控制工具 ...

  9. 简明 Git 命令速查表(中文版)

    原文引用地址:https://github.com/flyhigher139/Git-Cheat-Sheet/blob/master/Git%20Cheat%20Sheet-Zh.md在Github上 ...

随机推荐

  1. C# 数组转字符串显示

    , , , , , , , }; arry[] = (] | ); string result = String.Join("", arry); Console.WriteLine ...

  2. 【BZOJ4671】 异或图

    Description 定义两个结点数相同的图 G1 与图 G2 的异或为一个新的图 G, 其中如果 (u, v) 在 G1 与 G2 中的出现次数之和为 1, 那么边 (u, v) 在 G 中, 否 ...

  3. Spring Boot教程(三十六)使用MongoDB数据库(2)

    快速开始使用Spring-data-mongodb 若MongoDB的安装配置采用默认端口,那么在自动配置的情况下,我们不需要做任何参数配置,就能马上连接上本地的MongoDB.下面直接使用sprin ...

  4. android 开发随手记

    1.Fragment 跳转到Activity 修改数据,修改完后从Activity 返回(返回键)Fragment ,要求刷新Fragment界面的数据 解决办法: 在Fragment中注册一个监听广 ...

  5. JavaWeb_(Struts2框架)Ognl小案例查询帖子

    此系列博文基于同一个项目已上传至github 传送门 JavaWeb_(Struts2框架)Struts创建Action的三种方式 传送门 JavaWeb_(Struts2框架)struts.xml核 ...

  6. smarty 模板中输出时间戳为年月日格式

    日期:{:date('Y-m-d',$v['addtime'])}  // $v['addtime']数据库中的时间戳 输出结果: 日期:{:date('Y-m-d H:i:s',$v['addtim ...

  7. 石川es6课程---11、json

    石川es6课程---11.json 一.总结 一句话总结: ` 感觉更方便了一点,增加了一些简写 ` key-value 一样时可以简写:console.log({ a,b}}) ` 里面函数可以简写 ...

  8. 评CSDN上一篇讲述数据迁移的文章“程序员 12 小时惊魂记:凌晨迁移数据出大事故!”

    原文地址:https://blog.csdn.net/csdnnews/article/details/98476886 我的评论:热数据迁移,本不该搞突击,这样一旦出现问题后果不堪设想,多少DBA和 ...

  9. C#卸载加载到进程里的dll

    参考 DLL卸载 VC实现DLL注入之DLL卸载 CreateToolhelp32Snapshot (kernel32) CreateToolhelp32Snapshot函数 RegAsm安装卸载办法

  10. json-lib json反序列化——日期转换

    将json格式的字符串转为对象,其中key-value有将String的日期转为Date类型,怪现象就是,转出来的Date类型的值是当前的系统时间. 网上有许多答案,在反序列化之前需要注册Date解析 ...