你瞅啥呢

2023-08-29 git命令学习

永久删除本地所有已暂存和未暂存的修改————适用于切换了多个分支且使用了git stash去暂存修改时发生的需要合并才能切换分支的场景

git reset --hard HEAD

此命令会将工作目录和暂存区重置为最近一次提交的状态,被删除的文件为永久删除,无法找回!!请三思后再使用。

如果你不想丢弃所有未提交的文件,而仅仅是想重置暂存区,则使用git reset即可,即不用在带上命令

如果执行此命令后再切换指定分支提示你:

error: The following untracked working tree files would be overwritten by checkout:

...

Please move or remove them before you switch branches.

错误:以下未跟踪的工作树文件将被签出覆盖:

...

请在切换分支之前移动或删除它们。

那么你只能找到这些文件,把他们删了或者移动到某某地方,这时候使用git命令可不太好使

=========================================================================================================================

初始化git:git init

 

查看当前仓库状态:git status

 

只查看本地分支名称:git branch

只查看远程分支名称:git branch -r

只查看本地所有分支信息:git branch -v

同时查看本地远程分支名称:git branch -a

(新建分支后,使用git branch或者git checkout为何查看/切换不了新建分支?==》拉取最新分支代码即可获取分支信息)

 

切换分支(例:test):git checkout test

创建新分支并切换到该新分支:git checkout -b <new branch name> [<existing branch name>]

例:git checkout -b tt 创建新分支tt并切换到tt分支,注意,如果没有指定[<existing branch name>],

即没有指定已存在的分支,那就会基于当前分支创建新分支!如上,便是基于当前分支创建的tt分支。

注意🔺:切换多个分支时,git尝试把本地文件和远程文件进行合并可能会出现合并冲突,这时候如果使用git stash无法放弃更改,还是提示你需要合并才能进行下一步操作,那么有两个方案:

方案一(操作稳妥,推荐使用):

1.获取远程仓库最新修改,此操作不会直接把远程仓库的文件覆盖本地文件

git fetch origin

2.将本地分支重置为远程仓库的最新状态,覆盖本地所有更改

git reset --hard origin/sit

方案二(不推荐,因为我执行了下面两行代码,还是提示我要解决冲突(也许是我不会用),请使用上面的方法):

1.丢弃所有未提交的本地更改,请确保你不再需要这些更改

git reset --hard

2.危险操作,会强制覆盖本地文件,可能会导致数据丢失,谨慎使用!

git pull --force

 

 

拉取代码:git pull

如果拉不到代码(比如在master分支删掉了index.html文件,切换到dev分支时却拉不到index.html文件的情况):

git fetch --all && git reset --hard origin/master && git pull

该命令作用是拉取远程仓库强制覆盖本地仓库👆

另外你还可以用下面方法来强制刷新本地缓存

git fetch origin
添加内容到暂存区:git add .
.表示添加当前目录下的所有文件到暂存区
git add readme.md 表示添加一个叫readme.md的文件,后面可以跟多个文件,即可上传多个文件

将暂存区内容提交到本地仓库:git commit

git commit -m [message] 
message为备注信息

将暂存区内容提交到远程仓库:git push

查看提交的历史记录:git log

 

查看标签:git tag(默认列出所有标签)

git tag -l

注意:如果你想拉取远程标签,你应该使用 git fetch --tag 命令

git fetch --tag

然后再查看所有标签 git tag -l

切换标签:git checkout 2.1.1.2

删除标签:git branch -d 2.1.1.2

强制删除标签:git branch -D 2.1.1.2

删除多个:git branch -D dev_0102 dev_1211

如果有绑定到什么分支,该强制删除可能会导致报错,git不会让你删除的

删除本地分支:git branch -d 分支名

删除本地分支:git push origin --delete 分支名

注意:删除本地分支时需要切换到其他分支才能删除目标分支,即目标分支不能是当前分支

删除后可使用git branch验证分支是否被删除,git branch -r则是查看远程分支列表

 

放弃本地的修改:git stash

恢复本地文件到最新提交的状态:git restore src/views/goods/ReleaseGood.vue 

 

比较当前分支与另一个分支的不同,比如查看dev分支与main的不同

git diff --name-only main...dev

 

合并代码

如果你要把你的分支dev合并到master,你需要切换到master,然后在终端执行合并:

// 注意,合并前先把你的需要合并的代码先提交到dev

git checkout master    切换到master

git pull 先拉取master最新代码,在团队开发时这是必须的操作

git merge dev    合并操作:把指定分支dev合并到当前分支master

git push    提交合并,如果你不提交,那么远程master就不会保存你的代码,git merge只是在本地合并

====== 2025-08-27 今天想要合并一个已有内容修改的分支,发现执行合并命令不生效,老是提示:Already up to date 脑壳疼。。========

当你合并了代码,又不想要了,如何取消合并?(未提交)

1.先查询提交日志

git log --graph --decorate --oneline

找到你需要撤回的日志

2.执行撤回

git reset --hard a5a5b81 // 比如a5a5b81就是你要撤回的日志

当你合并了代码,又不想要了,如何取消合并?(已提交合并代码)

1.查询提交日志

git log

找到你需要撤回的日志

比如:

复制 commit 后面的长长的编码

2.使用git revert创建一个新请求来撤销合并

git revert  -m 1 长长的编码

3.提交新请求

git push

注意:如果有冲突需要先解决冲突然后再提交。

 

把指定文件回退到指定版本

比如你有一个文件提交了多次,但想要回退该版本到指定的版本,可以使用以下命令

git restore --source=版本编码 要回退的文件路径

例如:

git restore --source=609rdbf8 src/views/index.vue

而这个版本编码你可以通过git log查询

注意这是git 2.40版本以上的用法

 

最后附上git的官网下载地址:https://git-scm.com/downloads

更多学习资料请阅菜鸟教程:https://www.runoob.com/git/git-basic-operations.html

posted @ 2023-08-29 20:50  叶乘风  阅读(37)  评论(0)    收藏  举报