1.Git区域结构分类
1.git远程主支:github或码云
2.git本地分支:通过git commit将所有缓存提交到本地分支,通过 git reset --hard commit_id 会回退到历史版本
3.git本地暂存( stage ):通过 git add file将工作区修改的文件添加到本地缓存,添加到本地暂存表示已解决冲突,可通过git reset HEAD file 撤销加入缓存
4.工作区:在创建的仓库目录下,普通的修改文件,添加文件,可通过git status掌握工作区的状态,一般冲突在这部分产生,可通过git add file添加到git本地暂存,也可通过git checkout -- file 撤销修改(撤销成暂存区内容,若暂存区为空,撤销成分支内容)
5.非工作区:其他目录的文件,add不能添加非工作区的文件
如下表示工作区、暂存区、本地分支的结构图(非原创)
2.本地分支
git status :随时掌握工作区的状态和暂存区的状态
git status 提示信息解析:
changes not staged for commit: 修改了文件
untracked files:新添加了文件
git add file 将其添加到暂存区 git add -A 添加所有改动 git rm file 删除文件
git commit 将其提交到当前分支,只会将暂存区的修改提交,不会提交工作区的
git commit -m "备注" 添加本次提交的备注信息
git commit -a 将git add和git commit合并
git reset --hard commit_id 回退版本(只要直到版本号),直接修改当前工作区的文件
HEAD 当前版本,HEAD^前一个版本,HEAD^^前两个版本 版本号可以只指定前面几位,只要不重复
git log 查看提交历史(回退到历史版本后,未来的提交看不到,只会看到当前版本 HEAD 之前的提交) 参数 --pretty=oneline
git reflog 查看命令历史(可通过该方法找到未来版本的版本号)
3.远程仓库
1.添加远程库:
(1).首先要在github上新建一个空的仓库
(2).git remote add origin https://github.com/xxx/learngit.git 从本地关联远程库,远程库名字origin,这种网址要输入用户名和密码,可以考虑用ssh网址
(3).git push -u origin master 第一次推送分支的所有内容
(4).git push origin master 推送最新修改
2.从远程库克隆:
git clone https://github.com/xxx/hello-world.git 直接克隆到当前目录,不需要用户名和密码
3.常用命令:
git remote:查看远程库信息
git remote -v:远程库详细信息
git branch -r , git branch -a 查看远程分支
git push 将当前分支推送到远程对应的分支(若远程无对应分支,则推送无效)
git push origin dev 将分支dev提交到远程origin/dev(远程没有则创建, 远程没有dev则创建)
git branch –set-upstream branch-name origin/branch-name 建立本地分支和远程分支的关联
git checkout -b dev origin/dev 创建远程的origin/dev分支到本地
4.分支管理
常用命令:
查看分支:git branch
创建分支:git branch name
切换分支:git checkout name 工作区文件内容会立即变化成对应分支的内容
创建+切换分支:git checkout -b name
合并某分支到当前分支:git merge name
删除分支:git branch -d name
查看分支合并情况:git log –graph –pretty=oneline –abbrev-commit
合并分支(fast forward):git merge name
合并分支(禁用 Fast forward):git merge –no-ff -m “描述” dev
5.标签
1.创建标签
git tag tagname 对当前版本建立标签
git tag tagname commit_id 对历史版本建立标签
git tag -a tagname -m “描述…” commit_id 添加说明
git tag 查看所有标签
git show tagname 查看某个标签具体信息
2.删除标签
git tag -d tagname 删除本地标签
3.推送标签
git push origin tagname 推送本地的某个标签到远程
git push origin –tags 一次性推送所有分支
4.删除远程标签
git tag -d tagname 先删除本地
git push origin :refs/tags/tagname 从远程删除
6.忽略文件
新建.gitignore文件 提交到版本库
文件内容如:
aaa
*.db
git add -f App.class 强制添加忽略文件
声明:以上内容为原创,并参考廖雪峰git官网教程