Android项目中Git的使用
- git项目
- git分支管理
- git远程分支
git状态图
![]()
git项目
获取途径:自己新建项目和GitLab上已有的项目
一、自己新建的项目
初始化git仓库
git init
添加跟踪文件或添加修改文件
git add file1,file2…
提交到本地git仓库
git commit -m “comment”
提交到远程仓库。
本地Git仓库添加远程GitLab仓库
git remote add [shortname] [url]
推送项目到远程仓库:
git push -u [remote-name] [branchname]
二、克隆GitLab上已有项目
git clone url [project]
删除文件,同时在目录中删去该文件, 移除文件时,下一次提交时文件就不再纳入版本管理了。
git rm fileName
删除文件,同时在目录中删去该文件,但已经在暂存区
git rm -f fileName
不想让Git继续跟踪某个文件,但保留在工作目录
git rm –cached fileName
从暂存区取消暂存
git reset HEAD fileName
还原已更改的文件
git checkout – fileName
分支管理
新建分支
git branch [branch name]
切换分支
git checkout [branch name]
新建分支同时切换到该分支
git checkout –b [branch name]
查看当前分支
git branch
合并分支:如在master中合并test分支
git checkout master
git merge test查看各分支的最后一次提交:
git branch –v
合并某个分支后,可以删除该分支:
git branch –d [branch name]
若该分支还没合并,但仍然要删除它
git branch –D [branch name]
查看已经和当前分支合并的分支
git branch –merge
查看已经和当前分支尚未合并的分支
git branch –no–merge
Git远程分支
远程跟踪分支是远程分支状态的引用。 它们是你不能移动的本地引用,当你做任何网络通信操作时,它们会自动移动。 远程跟踪分支像是你上次连接到远程仓库时,那些分支所处状态的书签。
获得远程分支的完整列表:
git ls-remoe [remote name]
获取远程分支引用的更多消息:
git remote show [remote name]
推送分支
推送新的本地分支到远程仓库
git push [remote name] [local branch name]
若想推送新的本地分支到远程仓库,但想修改远程仓库分支名:
git push [remote name][local branch name]:[remote branch name]
拉取服务器新的分支
如某个合作者上传了某个分支:git push origin test:test
当其他协作者从服务器上抓取数据时,他们会在本地生成一个远程分支 origin/ test,指向服务器的 test分支的引用。特别注意的一点是当抓取到新的远程跟踪分支时,本地不会自动生成一份可编辑的副本。 换一句话说,这种情况下,不会有一个新的test 分支 - 只有一个不可以修改的 origin/test指针。
git fetch origin
可以合并这个分支到当前分支:
git merge origin/test
- 可以新建一个分支test,让其跟踪远程仓库分支test
git checkout –b test origin/test
跟踪分支
从一个远程跟踪分支检出一个本地分支会自动创建一个叫做 “跟踪分支”(有时候也叫做 “上游分支”)。跟踪分支是与远程分支有直接关系的本地分支。 如果在一个跟踪分支上输入gitpull,Git能自动地识别去哪个服务器上抓取、合并到哪个分支。
* 跟踪某个分支:
git checkout –b [new brand name] [remote name]/[branch name]
若直接新建一个分支并跟踪该远程分支,本地分支名将和远程分支名相同git checkout –track [remote name]/[branch name]
设置已有的本地分支跟踪一个刚刚拉取下来的远程分支,或者想要修改正在跟踪的上游分支,你可以在任意时间使用-u或–set-upstream-to选项运行gitbranch来显式地设置。
git branch –u [remote name]/[branch name]
如果想要查看设置的所有跟踪分支,可以使用git branch的-vv选项
git branch –vv
拉取
- git fetch [remote name]
从服务器上抓取本地没有的数据时,它并不会修改工作目录中的内容。 它只会获取数据然后让你自己合并。 - git pull
在大多数情况下它的含义是一个git fetch紧接着一个git merge命令。git pull会查找当前分支所跟踪的服务器与分支,从服务器上抓取数据然后尝试合并入那个远程分支。
删除远程分支
git push [remote name] --delete brandname
假设你已经通过远程分支做完所有的工作了 -也就是说你和你的协作者已经完成了一个特性并且将其合并到了远程仓库的master分支(或任何其他稳定代码分支)。可以运行带有–delete选项的git push命令来删除一个远程分支。