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