git版控制

git合并分支(dev-master)

  1. 切换到dev分支-git checkout dev;
  2. 执行rebase命令-git rebase master(会把master上最新的commit都复制过来)
  3. 有冲突的话解决冲突(不能用pycharm的resolve,解决完了会自动add,但是命令行接收不到,不能切换到正常分支);
  4. 冲突解决了之后git add 冲突文件;
  5. 执行git rebase --continue(rebase的时候,修改冲突后的提交不是使用commit命令,而是执行rebase命令指定 --continue选项);

这样,在master分支的dev分支就可以fast-forward合并了。切换到master分支后执行合并。

  1. 切换到master分支-git checkout master;
  2. 合并dev代码-git merge dev,如果dev有多次提交的话,可以使用--squash命令合并提交-git merge --squash dev,之后再次commit-git commit -m '合并commit';
  3. push到远程分支-git push;

    git reset回撤操作

在 Git 中,有三个主要区域来跟踪和管理代码:

  1. 工作目录(Working Directory):这里包含了当前的文件和它们的修改。
  2. 暂存区(Staging Area 或 Index):当你执行 git add 后,更改会被放到这里,作为下一次提交的候选。
  3. 提交历史(Commit History):当你执行 git commit 后,更改会被永久记录到这里。

当你执行 git reset 命令不带任何参数时,它的行为如下:

使用 git reset 时,你可以指定一个 commit,这可以是一个哈希值、一个分支名称、HEAD 的相对移动(例如 HEAD~1 表示前一个提交)等。

  • 暂存区重置:Git 会取消所有已经暂存的更改。这意味着,如果你之前执行了 git add 将更改加入暂存区,这个命令会撤销这个操作,更改会从暂存区回到工作目录。
  • 工作目录保留:工作目录中的文件不会被影响。这意味着你在文件中所作的任何修改都会保持当前状态,不会被撤销。
  • 提交历史不变:当前分支的最后提交(HEAD 指向的提交)不会变化。
  • git reset --soft :

    • 将当前分支的HEAD指向指定的 ,但不改变暂存区(索引)和工作目录。
    • 比如,如果你已经提交了一些不想要的更改,但是想要保留更改内容并重新提交,你可以使用这个命令。
  • git reset --mixed :

    • 将当前分支的HEAD指向指定的 并更新暂存区以匹配这个
    • 工作目录中的更改将被保留,但未暂存。
    • 这是默认选项,如果不指定参数,git reset 将使用 --mixed 模式。
  • git reset --hard :

    • 将当前分支的HEAD指向指定的 并更新暂存区和工作目录以匹配这个
    • 这会丢弃自 以来在暂存区和工作目录中的所有更改。
    • 这是一个危险的命令,因为它将丢弃所有未提交的更改。

 如果要撤销最后一次提交,并保留更改内容在工作目录中以便重新审查或编辑,可以运行:

git reset --soft HEAD~1

如果仅仅想要撤销最后一次提交的记录,并且想要重新暂存更改,你可以省略 --soft

git reset HEAD~1

如果你想要完全撤销最后一次提交,并且丢弃所有的更改(包括工作目录中的更改),你可以运行:

git reset --hard HEAD~1

举例:

1.提交的哈希值:每次提交都会生成一个唯一的 SHA-1 哈希值,例如 a1b2c3d4e5。你可以在 git log 输出中找到这个哈希值。

git reset --hard a1b2c3d4e5

2.相对引用:例如,HEAD~1HEAD^ 表示当前分支的上一个提交(HEAD的父提交),HEAD~2 表示当前分支的前两个提交。

git reset --hard HEAD~1

3.分支名称:例如,如果你想要重置到 develop 分支的当前状态。

git reset --hard develop

4.标签名称:如果你给某个提交打了标签,也可以使用标签来引用提交。

git reset --hard v1.0.0

git revert

git revert 创建一个新的提交,这个提交会撤销指定提交的更改。它不会修改已有的提交历史,而是向历史添加一个新的“反向”更改。

git revert 

git push相关

1.提交代码流程

先git add,再git commit -m " commit_content";注意不同的组织会对于commit_content有具体的要求,否则git push会被拒绝; 下一步最容易被新手忽略,在push之前一定要pull,然后再git push

2.提交之后的回退流程

先git log,查看本地提交的版本号,git reset --hard 版本号,可回到版本号对应的版本(一般都是回到上一个提交的版本号),如图黄字的commit后面就是版本号;为什么要--hard呢,详见上述git reset部分

git版控制_第1张图片

回退结束之后,先pull再进行修改,因为远程的已经是上次你自己提交的那个了,所以要先拉回来,修改结束之后,git push -f  ,为什么要用-f呢,因为现在是前一个版本了,需要将原来最新的那个提交覆盖掉

你可能感兴趣的:(代码命令,管理工具专栏,git)