Git操作

685 阅读5分钟

git 示意图及关键步骤

image.png

撤消上一次的add

git reset HEAD

commit指定目录

git add ios_frameworks
git commit -m 更新iosFrameworks
git git push origin master

git创建两个远程仓库

git remote add origin https://github.com/yourusername/yourrepo.git 
git remote add upstream https://github.com/mainrepo/mainrepo.git

//执行命令拉取upstream地址main分支的代码到本地。
git pull upstream main   
//执行命令拉取origin地址代码到本地
git pull

可以从一个git地址上(upstream)追踪拉取合并新代码,并编写代码和推送到另一个origin地址。

撤销上一次的commit

要取消上一次的提交(commit),你可以使用 git revert 或 git reset 命令,具体取决于你想要达到的效果。

  • 使用 git revert 创建一个新的提交来撤销上一次提交所做的更改。这样做会保留上一次提交的历史记录,并且创建一个新的提交来撤销更改。这是比较安全的方法,因为它不会改变历史记录。
git revert HEAD

Git 会创建一个新的提交来撤销上一次的提交。

  • 使用 git reset 命令来回退到上一次的提交并删除之后的提交历史记录。这将会改变 Git 历史记录,所以请确保你知道自己在做什么,或者在你独自工作的分支上使用这个方法。
git reset --hard HEAD~1

这个命令将删除上一次的提交以及之后的所有提交,并将你的代码库回退到上一次的提交状态。请注意,这个操作会丢失所有未提交的更改,所以在执行之前请确保你的工作目录是干净的。

git merge操作

下面是一些常见的 git merge 操作及其解释:

  • 合并指定分支到当前分支:
git merge BRANCH_NAME

这将把指定分支(BRANCH_NAME)的代码合并到当前所在的分支。

  • 合并指定分支到目标分支:
git merge BRANCH_NAME INTO TARGET_BRANCH

这将把指定分支(BRANCH_NAME)的代码合并到目标分支(TARGET_BRANCH)。

  • 合并所有分支到当前分支:
git merge-all

这将把所有其他分支的代码合并到当前所在的分支。

  • 冲突解决:

在合并过程中,如果两个分支修改了同一部分的代码,Git 无法自动解决冲突。你需要手动编辑文件来解决冲突,并使用以下命令标记为解决冲突状态:

git mark-resolve FILENAME

其中,FILENAME 是冲突文件名。

  • 查看合并历史:

你可以使用以下命令查看合并历史记录:

git log --merge

这将显示包含合并操作的提交历史记录。

这些是一些常见的 git merge 操作。在进行合并操作时,请确保你的工作目录是干净的,并且已经将更改提交到本地仓库。在执行合并操作之前,最好先备份你的工作目录以防止数据丢失。

查看远程分支地址

git remote -v
//输出如下
origin  git@gitee.com:jsonzcz/xxx.git (fetch)
origin  git@gitee.com:jsonzcz/xxx.git (push)

git stash 命令的作用及其相关参数讲解

git stash 是一个强大的工具,用于管理你的代码和工作流程。具体来说,git stash 可以用于保存你当前的修改,然后在你需要的时候再重新应用这些修改。它可以将本地未提交的内容缓存并从当前分支移除,缓存的数据结构为堆栈,先进后出。

当你在开发过程中遇到一些复杂的情况,如需要切换分支或暂时需要把当前工作目录的修改保存起来,但又不希望提交这些修改时,就可以使用 git stash 命令。

git stash 命令的参数详解如下:

git stash save:将没有提交的内容缓存并移除,而这条缓存名称为最新一次提交的 commit -m 的内容,如果没有本地提交则是拉远程仓库是的 commit 内容。加上自己的注解进行缓存。需要注意的是,stash 只会操作被 git 追踪的文件,stash 后新增的文件并没有进入缓存,这是因为 git 还没有追踪这个新增的文件,所以需要进行 git add [文件名] 让 git 追踪这文件,再进行 stash 就可以对新文件进行操作。

git stash list:显示所有 stash 的列表。

git stash show:显示 stash 的内容。

git stash apply:重新应用 stash 中的更改。

git stash drop:删除一个 stash。

git stash clear:清除所有的 stash。

git stash pop:pop 出最近一次的 stash。

git stash branch:检出 stash 并创建一个新的分支。

git stash apply --index:重新应用 stash 中的更改并保留暂存区的改变。

git stash drop --index:删除一个 stash 并删除暂存区的改变。

git stash create:创建一个新的 stash,但不保存任何修改。

git stash store:存储 stash,但不将其添加到可用的列表中。

git stash save --include-untracked:除了追踪的文件外,也保存未追踪的新文件。

git stash save --patch <file>:将补丁文件应用到暂存区或工作目录中。

git stash save --include-binary <file>:保存二进制文件。

git stash save --exclude <pattern>:排除匹配模式的文件。

git stash save --message <message>:为 stash 添加一条消息。

git stash save --patch --message <message>:为 stash 添加一条消息和补丁文件。

总之,git stash 是一个非常实用的工具,能帮助开发者更好地管理他们的代码和工作流程。