git git reset --hard HEAD^ 和 git reset HEAD^ 的区别

本贴最后更新于 2494 天前,其中的信息可能已经时移俗易

git reset --hard HEAD^ 和 git reset HEAD^ 的区别
即有没有--hard 有什么区别?
两个命令的功能都是回滚 commit 过,但是还没有 push 的文件

git 参数 命令执行后
有--hard 文件是最新状态
没有--hard 文件是修改未 commit 的状态,即修改内容不会丢失

git 的其他命令

1,把修改的文件回滚到修改之前:

前提:该文件不是新增文件,并且没有提交(commit)
git checkout -- test.sh
git checkout -- readme.txt
回滚多个文件:
git checkout HEAD -- prod.sh src/main/java/com/chanjet/gov/controller/LogViewController.java

2,查看提交记录

git log --pretty=oneline

3,回滚 commit 过的文件

前提:commit 过,但是没有 push
git checkout -- test.sh 命令没用
git reset --hard 0248d8341472ab9d80d4e43ce89876f502fc975c
或者
git reset --hard HEAD^

4,创建本地分支

git checkout -b dev3333

5,把本地分支提交到新的远程分支

git -c core.quotepath=false push --progress --porcelain origin refs/heads/dev3333:dev3333333_remote --set-upstream
简化版本:
git push origin refs/heads/dev3333:dev3333333_remote --set-upstream

6,删除远程分支

git push origin --delete dev3333333_remote

7,拉去最新信息

git fetch origin --progress --prune

8,删除远程分支之后,如何删除本地分支和远程分支的关联关系?

git branch --unset-upstream

9,删除本地分支

git branch -d dev3333
w ~/code/mygit/back/chanjet_web_store   prod_unitPrice_05_18  git branch -d prod_unitPrice_0518
error: The branch 'prod_unitPrice_0518' is not fully merged.
If you are sure you want to delete it, run 'git branch -D prod_unitPrice_0518'.

从某次提交拉出分支,

git 从某次提交创建分支
git checkout -b prod_12_7 c9b5ad1cc43b0cbf230a7a1d6054dfdc8c0c5c88
Switched to a new branch 'prod_12_7'

修改远程服务器地址

修改 remote url:
tv_mobile git:(master) git remote -v
origin https://github.com/whuanghkl/tv_mobile.git (fetch)
origin https://github.com/whuanghkl/tv_mobile.git (push)
git remote set-url origin http://git.yhskyc.com/root/tv_mobile.git

  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    209 引用 • 358 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...