git和远程仓库建立连接详细过程
建立远程仓库
- 首先在github/gitee上创建自己的一个仓库,并将自己的路径复制下来,如下图。
建立本地仓库
- 本地新建文件夹存储工程文件,并且初始化仓库。
- 打开gitbash并输入
git init 进行初始化。
本地仓库和远程建立连接
将远程分支拉取到本地
提交并推送到远程分支
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合并失败的文件手动编辑为我们希望的内容,再提交。
|