git 示意图及关键步骤
撤消上一次的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 是一个非常实用的工具,能帮助开发者更好地管理他们的代码和工作流程。