git 命令
git clone 下载项目
git branch wxj 生成自己的分支:wxj
git checkout wxj 切换到自己的分支
git status 查看当前工作区和暂存区的状态。
On branch wxj
Changes not staged for commit:
(use “git add …” to update what will be committed)
(use “git restore …” to discard changes in working directory)
modified: app/model/account/cmdb.go
modified: app/model/account/cmdb_test.go
modified: conf/mount/config.dev.toml
no changes added to commit (use “git add” and/or “git commit -a”)
git stash list 显示当前存储的所有“储藏”(stash)内容的列表
在Git中,“储藏”是一种将工作目录和暂存区的更改暂时保存起来的方法,以便在切换分支或进行其他操作时轻松地切换回这些更改。
当您运行 git stash list
命令时,Git会列出所有存储的“储藏”条目,并显示每个储藏条目的唯一标识符、创建者、创建时间等信息。
此处第一次是空的
git stash 暂存当前工作目录的更改
Saved working directory and index state WIP on wxj: 1f2bf373 Merge branch ‘liminggang’ into ‘master’
这个消息表示您已经使用 git stash
命令将当前的工作目录和暂存区(index)的状态保存为一个“储藏”(stash)了。具体来说,该储藏包含了您在 wxj
分支上进行的工作,并且提交的信息是 1f2bf373 Merge branch 'liminggang' into 'master'
。
通过运行 git stash list
命令,您可以查看所有保存的储藏内容的列表,并找到这个具体的储藏。
git status
On branch wxj
nothing to commit, working tree clean
git checkout master 切换到主分支
Switched to branch ‘master’
Your branch is up to date with ‘origin/master’.
git log 查看提交历史 按q退出
git pull 从远程仓库拉取并合并更改
git checkout wxj 切到wxj分支
Switched to branch ‘wxj’
git log
git merge master 将master分支合并到当前分支
git log 查看提交历史
git stash pop 从最近保存的 stash(暂存)中提取最新的变更,并将其应用到当前工作目录中
git add . 将当前工作目录下所有修改过的文件添加到暂存区。这意味着所有已修改的文件都将被准备好待提交。
git status
On branch wxj
Changes to be committed:
(use “git restore --staged …” to unstage)
modified: app/model/account/cmdb.go
modified: app/model/account/cmdb_test.go
modified: conf/mount/config.dev.toml
git restore --staged src/plugin/axios/baseUrl.js 取消提交baseUrl.js
git commit -m “修改关于离职员工的腾讯云国际站的代码” 提交这些暂存的文件
[wxj 81f00d17] 修改关于离职员工的腾讯云国际站的代码
3 files changed, 15 insertions(+), 4 deletions(-)
git push 将会把您本地分支的更改推送到远程仓库中。
fatal: The current branch wxj has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin wxj
git push --set-upstream origin wxj 指定分支流是wxj
之后去对应git仓库手动操作。
当你在merge远程仓库时,发现多提交了一些文件的补救措施
git log
commit 8babf5b45b4554f9355f83430a3b82f97d480efc (HEAD -> wxj, origin/wxj)
Author: wangxiujie <wangxiujie@zuoyebang.com>
Date: Tue Aug 6 16:01:23 2024 +0800
EIP支持创建时给管理单元打标签
commit a4aa77954ab2e24a5f62e65c5b01eaeca396c85f
Author: wangxiujie <wangxiujie@zuoyebang.com>
Date: Tue Aug 6 15:36:13 2024 +0800
lb
commit d0e1e4db60aaf0a7a11e45a74cb1920cdf6fd8d3 (tag: ci_20240805155807938_odincloudmanager稳定版本, origin/master, origin/HEAD, master)
Merge: f94b7a19 30759f61
git reset --soft a4aa77954ab2e24a5f62e65c5b01eaeca396c85f
回退到特定版本
git reset --soft HEAD^
回退到上一版本
这时就到了本地comit前的状态
git restore --staged app/model/lb/data_lbManager.go
退回不该上传的文件
git commit -m “lb和eip支持创建时即打管单标”
重新commit
git push -f
强制覆盖云上自己的分支版本
git reset 详解
git reset --soft :
–soft 参数表示在重置后保留工作目录和暂存区的更改,不会修改文件内容。
HEAD 指针移动到指定的提交,但工作目录和暂存区的更改仍保留。
这使得您可以重新提交或修改之前的更改并重新提交。git reset --hard :
–hard 参数表示重置后将工作目录和暂存区回滚到指定提交时的状态,丢弃所有更改。
HEAD 指针移动到指定的提交,并清除工作目录和暂存区中的所有更改,使其与指定提交的内容完全一致。
这将使您丢失所有未提交的更改,请谨慎使用。git reset
在没有指定参数的情况下,git reset 默认行为是使用 --mixed 参数,这等效于 git reset --mixed 。下面是 git reset --mixed 的行为:
git reset --mixed :
将 HEAD 移动到指定的提交。
重置暂存区,但保留工作目录中的更改。
这意味着工作目录中的更改不会被丢弃,但暂存区的更改会被取消。
您可以使用 git add 将工作目录中的更改重新添加到暂存区,然后重新提交。
因此,使用 git reset 而不带任何参数时,实际上是将 HEAD 移动到指定的提交,同时重置暂存区,但保留工作目录中的更改。这种行为有助于重新组织提交历史或取消暂存的更改。