git基本命令使用

git练习网站

点击前往

git常用命令速查表

img

合并分支
	git merge <分支名>   # 将某个分支合并到当前分支
	git rebase <分支名>  # 把当前分支最后的提交记录拷贝一份副本后,移动到某个分支<branch-name>上

	git checkout <节点>   # 跳转到某个节点(可以是哈希值表示的节点,也可以是相对当前节点位置的节点,如HEAD~1,HEAD^)
	git checkout <分支名> # 跳转到某个分支

	
撤销变更
	git reset HEAD~1  # 回退到前一个节点的内容,HEAD表示当前所在节点
	git revert HEAD~1 # 将往前第二次的内容拷贝出来重新提交一份,适用于远程仓库分支节点的回退

将分支指向某个节点
	git branch -f <branch-name> HEAD~4  移动分支名到某个位置(当前(不算当前这个)往上第4个)
	【分支名可以理解为一个指针,指向某个分支最新一次的提交记录】

提交记录整理
	git rebase -i HEAD~4     # 交互式rebase,对当前节点到往前共4个节点的提交记录进行整理,整理后提交到当前分支
	git cherry-pick C1 C2      # 将提交记录(C1,C2都是哈希值)提交到当前分支


git仓库创建

git init        # 将当前文件夹初始化为一个仓库
git clone <url>  # 克隆一个远程仓库作为本地仓库

git本地提交

git add .    # 添加全部文件到暂存区
git add <file>  # 添加某个文件到暂存区

git commit -m "提交的相关信息"

git分支使用

创建分支

git branch  # 查看当前有哪些分支
git branch <branch-name> # 创建新的分支,分支名字branch-name自己定
git checkout <branch-name> # 跳转到指定分支并在该分支(该分支会自动把之前的工作都包含进来)继续工作

git checkout -b <branch-name>  # 创建分支并切换到该分支

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

合并分支

git merge <branch-name>  
# 将指定分支的内容合并到当前分支,但该分支还在,可以用 git branch -d <branch-name> 来删除分支

git rebase <branch-name>  
# 将当前分支移动到指定分支上,比如移动到主master分支上,看起来就像是线性开发一样
# 注意只是移动,开发时还是在分支上进行的

版本回退

新的修改未提交(commit)

也就是在本地修改完文件后,不小心 ctrl+s 保存了,但还没有 commit,这时我不想保存了,希望回到修改之前咋办?可以用下面的方式:

git reset --hard HEAD  # 撤销工作目录中所有【未提交文件】的修改,即回退到节点中的内容

git checkout HEAD <file>  # 撤销指定未提交文件的修改

不论在本地修改多少次,都会返回到最后提交的那个版本(即提交记录中有的那个版本),因为这个版本在git历史中已经有了记录,所以可以回退;

因此,如果在修改过程中,如果有的想保留,有的不想保留了,这种方式就不行,最好分多次提交(即每次修改后都提交一下,并写好说明文字),这样就可以回退到提交过的任一版本(如何回退看下面的方法)

新的修改已经提交(commit)

也就是每次修改后都及时提交(commit)过了,这时就可以回退到历史提交的任一版本

首先可以查看下【历史提交】的信息,了解下历史提交的大概内容

git log      # 查看详细信息
git log --pretty=oneline  # 查看精简信息

接下来就可以回退版本了,有2钟方式:

  • 相对法(相对于当前版本的历史版本)
git reset --hard HEAD^      # ^表示回到往前第一版本

^表示回到上一个版本,如果需要回退到上上个版本的话,将HEAD^改成HEAD^^, 以此类推。

那如果要回退到前100个版本,这种方法肯定不方便,我们可以使用简便命令操作:git reset -–hard HEAD~100

  • 绝对法(版本号法)
git reset --hard <历史版本号>
# 历史版本号获取
git reflog   # 查看所有历史的版本号

【举个例子】

一个 “t1.txt” 文件内容如下

image-20220122172201997

现在希望回退到第一次提交时的情况,即文件中只包含内容: test1

首先查看历史提交信息 git log

image-20220122171926935

然后使用 git reset --hard HEAD~2 或者 git reset --hard HEAD^^ 或者 git reset --hard f5564d8 (版本号法)

打开文件查看,发现回退成功

image-20220122172809399

回退后突然不想回退了咋办,返回最新的版本,通过【版本号回退法】即可

image-20220122173404543

看看效果

image-20220122173549859

posted @ 2022-01-22 16:20  aJream  阅读(38)  评论(0编辑  收藏  举报