每天对自己多问几个为什么,总是有着想象不到的收获。 一个菜鸟小白的成长之路(copyer)
在gitee上创建一个项目,用来管理本地的代码
创建完项目之后,有两种情况:
-
第一种,本地还没Git的初始化,就依次执行下面的命令
git init touch README.md git add README.md git commit -m "first commit" git remote add origin 仓库地址 git push -u origin master
-
第二种,本地已经初始化了,只需要把本地的推送到远端
git remote add origin 仓库地址 git push -u origin master //上面的origin都是对应的,可以修改的
注意事项:
-
在
本地仓库
推送到远程仓库
的时候//这里只会推送master分支 git push -u origin master //如果想要推送其他本地的分支,就需要单独执行命令(比如说,dev分支) git push -u origin dev
-
在本地
克隆
远程仓库的地址git clone 仓库地址
这里注意的是,远程仓库有两个分支(
master
、dev
),克隆到本地的时候,其实已经把所有的分支已经克隆下来的了,但是在本地执行git branch
的时候,发现了只有master分支,其实只是这里没有显示而已,想要使用其他分支的时候,直接切换到对应的分支即可
解释疑惑git push
git push -u origin master
和 git push origin master
的区别?
使用了 -u
参数之后,就指定了默认的提交分支(比如上面的master分支)。就是为了方便,以后直接使用 git push
就是往master分支上提交
git push origin 分支名
就是指定的往哪个分支上提交
公司与家之间的git流
-
第一天上班,需要克隆公司的代码
git clone 仓库地址
-
开发新的功能(看自己公司是在哪个分支上开发, 一般来说是dev分支)
git checkout dev //写了一天的代码 git add . git commit -m '第一在公司写的代码' git push origin dev //你在dev分支上开发的,就提交到dev分支
-
回到家中,想加班,完成今天没有写完的代码逻辑
git clone 仓库地址 // 情况一:只是针对电脑上还没有项目 git pull origin dev // 情况二:电脑上有项目,只需要拉取对应的分支即可 //晚上加班代码 git add . git commmit -m '第一天晚上加班的代码' git push origin dev
-
第二天到公司之后,跟上面的步骤一样
-
这样日复一日,年复一年,就工作下去了
补充git pull
的几种写法
理解:写法复杂的,理解简单;写法简单的,理解复杂。
-
第一种:
git pull origin <远程分支名>:<本地分支名>
(好像:
加不加空格,都是一样的)//实例 git pulll origin dev:master //把远程的dev分支和本地的master分支合并 git pull origin dev:dev //把远程的dev分支和本地的dev分支合并
-
第二种:
git pull origin <远程分支名>
//实例 git pull origin master //如果当前指针在master分支上,那么就是把远程的master分支本本地的master分支合并 //如果当前指针在dev分支上,那么就是把远程的master分支本本地的dev分支合并
简单理解就是:跟第一种是相似的,就是
Git内部自动推算了本地的分支名
-
第三种:
git pull
这里有点没吃透。后面继续理解
git pull指令的替换
git pull origin dev
//等价于
git fetch origin dev
git merge origin/dev