git和远程仓库建立连接详细过程

建立远程仓库

  • 首先在github/gitee上创建自己的一个仓库,并将自己的路径复制下来,如下图。

建立本地仓库

  • 本地新建文件夹存储工程文件,并且初始化仓库。
  • 打开gitbash并输入​​git init​​ 进行初始化。

本地仓库和远程建立连接

  • 使用下面指令进行连接,其中地址为建立远程仓库步骤中复制的路径。
git remote add origin "路径'

将远程分支拉取到本地

  • 拉取远程分支
git pull origin develop(远程分支名称)
  • 查看当前仓库状态
git status
  • 如果当前仓库状态有更新先将其添加入暂存区
git add .
  • 这里的​​.​​表示将所有的进行一个添加。

提交并推送到远程分支

  • 提交并添加备注
git commit -m "备注信息"
  • 推送到远程分支
git push origin develop(远程分支名称)

git使用过程一些指令的注意点

​git merge​​​ 和 ​​git rebase​​ 的区别

  • 都是合并历史记录,但是各自特性不同。
  • merge
  • 通过merge合并分支会新增一个merge commit,然后将两个分支的历史联系起来。
  • 其实是一种非破坏性的操作,对现有分支不会以任何方式被更改,但是会导致历史记录相对复杂。
  • rebase
  • rebase会将整个分支移动到另一个分支上,有效地整合了所有分支上的提交。
  • 主要的好处是历史记录更加清晰,是在原有提交的基础上将差异内容反映进去,消除了 git merge所需的不必要的合并提交
  • 总结来说就是​​git merge​​​的历史记录更复杂,因为所有​​commit​​​(包括不必要的合并提交)都存在,而​​git rebase​​是重整基线,不必要的合并提交会消除,历史记录更加清晰。

​git pull​​​ 和 ​​git fetch​​ 的区别

  • 相同点
  • 在作用上他们的功能是大致相同的,都是起到了更新代码的作用。
  • 不同点
  • ​git pull​​​是相当于从远程仓库获取最新版本,然后再与本地分支​​merge​​​,即​​git pull = git fetch + git merge​​。
  • 相比起来,​​git fetch​​​ 更安全也更符合实际要求,在 ​​merge​​ 前,我们可以查看更新情况,根据实际情况再决定是否合并。
  • 总结来说就是​​git pull​​​比​​git fetch​​多了一个合并的操作。

​git reset​​​ 和 ​​git revert​​ 的区别

  • ​git revert​​​是用一次新的​​commit​​来回滚之前的commit​​,​​git reset​​是直接删除指定的​​commit​​。
  • ​git reset​​​ 是把​​HEAD​​​向后移动了一下,而​​git revert​​​是​​HEAD​​​继续前进,只是新的​​commit​​​的内容和要​​revert​​的内容正好相反,能够抵消要被​​revert​​的内容。
  • 撤销(​​revert​​​)被设计为撤销公开的提交(比如已经​​push​​​)的安全方式,​​git reset​​被设计为重设本地更改,如果回退分支的代码以后还需要的情况则使用git revert, 如果分支是提错了没用的并且不想让别人发现这些错误代码,则使用​git reset​
  • 两个命令的目的不同,它们的实现也不一样:重设完全地移除了一堆更改,而撤销保留了原来的更改,用一个新的提交来实现撤销

git 发生冲突时如何解决

  • 当Git无法自动合并分支时,就必须首先解决冲突,解决冲突后,再提交,合并完成。
  • 解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交