我们开始项目的时候需要先创建git仓库,然后将仓库克隆下来,然后在开始写代码。
创建子分支?
git checkout -b 子分支名
将子分支合并到主分支上
//切换到主分支上 git checkout master //合并分支 git merge 子分支名
如何将子分支推送到远程仓库中呢?
//切换到子分支 git checkout 子分支名 git branch //查看当前处于哪个分支 git push -u origin 子分支名称 //表示将本地的子分支提交到远程仓库中,且分支名字与子分支同名
//然后再将合并后的代码,push到远程仓库 git push
上传已存在的项目
git init git add . git commit -m "提交的描述" git remote add origin 地址 // 这里需要注意一下,当本地仓库和远程仓库关联错误,那么需要执行这句命令取消关联,然后再次和正确的仓库关联。 git remote remove origin git remote add origin 正确的地址 git push -u origin master
总体创建项目流程
//在github中创建见一个远程仓库 //在本地克隆仓库 git clone 地址 //创建项目架构 //将文件添加到暂缓区 git add . //查看文件状态 git status //将文件提交到本地 git commit -m "文件介绍" //将文件提交到远程仓库 git push -u origin master //接下来写是业务代码 //创建分支 git checkout -b 分支名 //......该分支业务完成 //提交子分支代码到远程仓库 git checkout 子分支 //查看处于哪个分支 git branch //将该分支写的代码放入缓存区 git add . //将该分支提交到本地 git commit -m '...分支完成' //提交该分支到远程仓库 git push -u origin 子分支名称 // 下面一部分的代码一定不能和上面调换 //将分支合并到主分支 git checkout master git merge 子分支名称 //将合并后的master分支提交到本地 git commit -m "...完成" //提交更新后的主分支 git push
先写代码,再创建分支。还是先创建分支然后在写代码都行,都可以同构分支提交。
提交的分支,它包含该分支提交的commit描述,并且也包括其他以前的文件。
我们如果想要合并该分支到主分支,我们还是得提交commit,但是提交的描述是子分支的提交描述。
先提交子分支,在合并子分支。这个顺序不能弄反,要不然还得合并。
当我们以前合并完分之后,再次修改该分支,我们还需要继续提交代码,然后进行合并分支。不然,他是不会再master分支展示修改后的代码的。。
git clone 与 git pull的区别
- git clone:是在本地没有版本库的时候,从远程服务器克隆整个版本库到本地,是一个本地从无到有的过程。
- git pull:在本地有版本库的情况下,从远程库获取最新commit 数据(如果有的话),并merge(合并)到本地。
如何解决上传github项目出现白色剪头不能打开的文件夹
因为这个仓库下写了三个项目(前,后,管理系统),直接在这三个项目的文件夹操作git命令,导致github这个文件夹上显示白色箭头并且不能打开。
原来是因为这个文件夹里面有.git隐藏文件,github就将他视为一个子系统模块了。
解决办法就是:
1、删除文件夹里面的.git文件夹
2、执行git rm --cached [文件夹名]
3、执行git add [文件夹名]
4、执行git commit -m "msg"
5、执行git push origin [branch_name]
解决以下错误
执行以下命令在提交
git config --global http.sslVerify "false"
执行下面语句,然后在推送
git remote rm origin
出现这个错误:error: RPC failed; HTTP 403 curl 22 The requested URL returned error: 403。他表示的是你没有可写权限。可以让仓库拥有者,给你开权限。
git clone 默认只克隆master分支,希望克隆其他分支
查看本地和远程仓库的所有分支
git branch -a
查看远程所有分支
git branch -r
如果想要拉取其他分支,可以这样。
如果想要将远程分支与本地分支联系起来,则执行(以feature分支为例)
git checkout -b feature origin/feature
或者使用-t参数,它默认会在本地建立一个和远程分支名字一样的分支
git checkout -t origin/feature
或者直接在vscode中切换分支。
左下角的位置
git代码写错分支
在git add 之前,我们不管在哪个分支都可以写代码,只要在git add 之前切换到正确的分支就行。如果在git add后,在切换分支会出现警告。
代码未提交(执行git add后, git commit前)时
// 先在错误的分支 git stash git checkout 正确的分支 git stash pop
如果代码提交了,我们依旧执行上面的操作。
所以需要执行下面的这些操作。
git checkout 不该提交代码提交了代码的分支 git reset HEAD~1 (最近一次提交放回暂存区, 并取消此次提交) git stash (把暂存的文件提交到git的暂存栈) 只有执行了这一步,才会删除以前分支的代码。 git checkout 该提交代码的分支 git stash pop
但是这样并不会删除git仓库中的不该提交改代码分支已经提交的代码。所以需要执行这个命令
1. // 到刚刚出错的分支 2. git push origin 错误分支
git commit执行后,就表示已经不会在提示有文件未提交了。如果没有commit,那么这里将会有提示。
TortoiseGit对比两个分支变更
以后遇到问题再补充。