git命令操作流程

如果你有使用github和gitee两个仓库,要重新配置ssh key,解决冲突那么请先看这个文章◀点击

  1. github就是一个网上仓库(分布式版本控制系统),当你下载了gitbash后该怎么使用一些常用命令呢?
    这里我做了一些直白的记录,浅显易懂直观即看即用,这些命令是让你在工作上成为一位git用户,
    在平时使用命令中一堆操作上不再苦恼~
    当然你想深入了解,欢迎去到廖雪峰Git系统网站学习▶穿梭机

  • 仓库添加文件 ↓

开始的时候,当你在clone下项目后,新建或修改了文件需要添加线上时:( git pull 执行拉取最新代码-保证代码最新)

git add .  // 添加所有文件
git commit -m '填写本次信息' // 提交备注
git push  // 推送远程


  • 仓库新建分支 ↓

当你想在项目中创建一个目录(分支):可以把修改的代码再添加文件到该目录下

git branch testName       // 分支-名字
git checkout testName     // 切换到分支
or
git checkout -b testName  // 创建并切换到的分支下


  • 推送分支 ↓

以下执行把 -创建的目录(分支)-推送到远程线上

git push origin testName          // 把本地分支提交到远程仓库
or
git push origin testName:testName // 分支的推送到远程-本地分支:(推送到)远程仓库上


  • 合并你的代码 ↓

回到主分支 / 以及-把分支代码-合并到主分支项目上

git checkout master // 切换分支
git merge testName      // 合并分支
git push            // 推送远程


  • 暂存代码^将当前工作区的修改暂存起来 ↓

有时候修改了代码,又要更新代码(pull)然后又不被覆盖怎么办呢?

git stash // 先把本地代码保存起来
git pull  // 再更新

那保存怎么取出来了呢?

git stash pop // 取出刚才的保存

然后去解决你的本地冲突就行了

  • 撤销先前commit ↓

在git push之前, git commit的内容后悔了怎么办呢?
或者你想回退到之前某个版本的代码,恢复到本地后可以选择覆盖和不覆盖当前的修改

假如你现在是这种情况,C是你的HEAD,(F)是你当前文件的状态。

   (F)
A-B-C
    ↑
  master

你想要除掉C,并且再也不想见到它。那么你这么做:

git reset --hard HEAD~1

执行完后的结果就是:

 (F)
A-B
  ↑
master

现在B是HEAD了。因为你使用了--hard,所以你的文件被重置到B的状态了。
当你要撤销提交,但是保留你更改的代码信息,然后做一些修改,再提交一遍。下面看看状态的情况:

   (F)
A-B-C
    ↑
  master

那种情况下不用使用--hard:

git reset HEAD~1

来看下HEAD的下标:

   (F)
A-B-C
  ↑
master

在正常情况下,HEAD都是指向最近一次提交的一个指针。当你使用 git reset HEAD~1 命令时,你告诉Git将HEAD指针往前回退一次,到上一个 commit 上。但是(除非你使用--hard参数)你仍然没有改变文件。那么 git status 会告诉你之前提交到 C 的修改变化还会存在。之前手码的都没有丢失。
所以想要最轻微的改动,撤销你的提交的同时还保留着你的文件和索引:

git reset --soft HEAD~1


  • reset恢复删除的文件
$ ls
A文件/  B文件/  C文件/  D文件/

先删除一个文件作为试验,查看操作状态会有deleted的文件,可以看到列表中已经剩下的三个文件

$ git rm A文件
rm 'static_files/abbr_data'

$ git status // '接着查看最新状态'
# On branch master
# Changes to be committed:
#   (use "git reset HEAD ..." to unstage)
#
#   deleted:    A文件

$ ls
B文件/  C文件/  D文件/

最后通过reset把删除的文件文件给恢复就好啦

$ git reset HEAD A文件
Unstaged changes after reset:
M   /A文件


  • 本地撤销后悔了,恢复某一次的提交 ↓
  1. 执行git reflog查看显示日志,所有HEAD的历史: git reflog
git reflog
// 以下为记录信息
002abcdgrhfkhdg HEAD@{0}: commit: 第二次提交
001abcdgrhfkhdg HEAD@{1}: commit: 第一次提交

2.找到想要恢复的SHA,执行以下恢复ok了:

git reset --hard 002abcdgrhfkhdg


  • 回退线上某一次提交记录

1.点开commit提交,找到想要回退的一次commit id信息

commit 003abcde123fghijk <复制

2.重置到你某一次commit的版本号

git reset --hard 003abcde123fghijk

3.以master分支为例,强制覆盖线上仓库的分支,此操作只适合个人的项目*慎重做个备份(可以修改为你当前的分支)

git push -f -u origin master


  • 提交错了分支该怎么办?↓

首先当然是先回滚你的提交并保留最新的更改,然后把修改的放入暂存区,在切换到你需要推送的分支进行提交,修改内容再提出来
假设你提交到了branch-1的情况下

git reset HEAD~1
...
git stash 
...
git checkout branch-2
...
git stash pop

紧接着做你想做的事情就好了,比如这里再进行提交信息:

git add
...
git commit -m "okok"
...
git push branch-2

但是你的branch-1分支多了一次不需要的提交,想要弄回来原模原样的记录:

git checkout branch-1
...
git push origin branch-1 -f

你可能感兴趣的:(git命令操作流程)