title: Git语法
新建本地仓库
-
在当前目录新建一个Git代码本地仓库
git init
-
添加指定文件到暂存区
git add [file] [file] ....
-
提交文件到本地
git commit [file] [file] ... -m[message] git commit -m[message]
-
提交到远端
git push
-
删除工作区文件
git rm [file] [file] ....
-
提交显示时所有的diff信息
git commit -v git status
分支
-
git branch
//查看本地分支 -
git branch -r
//查看远程分支 -
git branch -a
//查看本地和远程分支 -
git branch [branch-name]
//创建新分支,但是仍然停留在改分支 -
git checkout [branch-name]
//切换到当前分支---git checkout -b [branch-name]
//也同样可以实现 -
git merge [branch]
//合并指定分支(branch)到当前分支 -
git branch -d [branch-name]
//删除本地分支 -
git branch -d origin [branch-name]
//删除远程分支
创建Tag
-
git tag
//列出所有tag -
git tag [tag]
//创建一个tag在本地 -
git push [remote] [tag]
//提交tag到指定远端 -
git push [remote] --tags
//提交所有tag到远端分支[origin]
删除远程分支和Tag
git push origin --delete <brancnName>
git push origin --delete tag <tagName>
删除本地分支和tag
git tag -d [tag]
git branch -d [branch]
删除掉不存在远程分支的本地分支
-
git fetch -p
//会删除所有的没有跟远程分支对应上的本地分子 - git checkout branchX //切换到不复合的本地分支 然后使用
git remote prune origin
可以清除对应的分支
重命名远程分支
-
在git中重命名远程分支,其实就是先删除远程分支,然后重命名本地分支,再重新提交一个远程分支
-
先查看远程的分支
git branch -a
-
删除远端分支
git push --delete origin develop
-
重命名本地分支(develop-->devel)
git branch -m develop devel
-
推送本地分支
git push origin devel
待续
- 总归一句话:操作分支:git branch ..
- 操作tag:git tag ...
- 操作远程提交tag/branch:git push origin 2.0----//或者git push --tags(省略origin远程 )
- 操作远程删除tag/branch:git push origin -d 2.0
- 远程代码提交:git push 就可以了
多分支并行开发(都是以develop为基准分支)
-
正常逻辑
git branch native;//创建本地分支 git checkout native;//切换到native分支,前提是需要将develop的代码进行提交后再切换 ... ... native分支一顿修改 此时如果 git checkout develop develop上会有native分支上边的修改 但是其实修改还是算native分支上边的修改,并不是develop分支上的
-
方案一:将native分支推送到远端origin
git push origin native //切换分支前将native内容提交到远端然后再切换 git commit -xxx git push git checkout develop
-
方案二:只是小功能点不需要提交到远端
native分支修改后进行commit,然后再切换 git commit -xxx git checkout develop//这时develop上就不会有native分支新增内容,跟方案一是一样的
-
方案三:可以不commit的话可以用stash
切换到native分支后一顿修改,然后可以 git stash//将修改的内容暂时先存储在git的栈中 //等你下次切回来后 git stash pop //会提取出你之前存储的最新一次的记录
-
值得注意的是:
- 不过这种一般会用在develop修改,然后还没改好,需要切换到native分支上,这时会用到,因为不提交的话是切换不到native分支的,,子分支可以不提交直接切父分支,父分支不可以不提交直接切子分支,,正常子分支是建立在父分支的基租上创建的,所以正常是子分支代码量是大于父分支的
-
des
- native修改后忘记commit,然后遗忘,在master上继续修改,切换到native上commit后,在切换develop,develop上就没有对应的修改了
- 大概意思就是不管你在哪个分支修改,最终commit的分支为最终分支的提交,之前其他分支修改没有提交的都会还原到上一次提交的最新状态
网友评论