一.使用一个空git地址并上传项目(少数情况)
1.git init //在当前项目目录中生成本地git管理,并建立一个隐藏.git目录
2.git add . //添加当前目录中的所有文件到索引
3.git commit -m “first commit” //提交到本地存储库
4.git remote add origin 复制到git地址//添加到远处项目,命名为origin (这一步是重点)
5.git push -u origin master //把本地源码库push到github 别名为origin的远程项目中,确认提交
二.一般提交操作
1.git status //查看现在的git状态
2.git add //添加到暂存区
3.git commit //提交到本地仓库
4.git push //提交到远处仓库
5.git pull//从远处仓库拉取更新(push失败是由于远程仓库有本地不包含到commits,此时需要pull操作)
三.关于head commit branch的理解
Git就是由一个个commit组成的,每个branch都是一串commit,branch之间是完全平等的包括master(它只是一个默认的branch)。head就是branch此时指向的commit。
四.创建本地分支并提交到远程仓库和删除本地分支和远程分支(feature为示例branch)
创建:(查看所有分支 git branch -a)
1.git branch feature //创建一个为feature的分支
2.git checkout feature //上一步新建了分支但还没切换到feature上
3.git checkout -b feature //直接完成1.2步操作
4.git branch -d feature //删除分支
(将新建的分支提交到远程仓库,这种方式用于远端还没有feature这个分支,-u
(upstream)的意思是和远端建立连接,之后就可以从本地直接push了,否则每次push还要指定远程分支)
5.git push origin feature -u //提交到远程仓库()
删除:
1.删除本地分支 git branch -d feature
2.删除远程分支 git push origin -d feature
注:没有合并到master的分支无法删除,因为git怕你有未提交的工作
五.合并:merge
作用:
1.合并分支
2.pull(更新)的内部操作:pull的实际操作是把远端代码fetch下来,然后merge合并使用
正常使用
1.git merge branch feature(将当前head与feature合并)
补充:git merge origin/featrue(合并远程分支)
处理冲突:(冲突时由于两端同时修改了同一个文件的同一行造成git无法判断改使用谁的,同一个文件两端分别修改第一行和第二行是不会造成冲突的)
1.打开冲突文件招到冲突的地方(图merger) 冲突在head是”移动硬盘(已买)”和featrure1的“移动硬盘(不买了)”,以“======”为界,删除不要的,包括 ,<<<====>>>
2.解决完后的操作:(1)git add 冲突文件(这里commit前也需要先add)(2)git commit
3.放弃解决冲突,取消merge : git merge --abort
六.Feature branching :最流行的工作流
这种工作的核心内容为2点:
1.所以新功能都新建branch进行开发
2.branch完成后,merge到master然后删除branch