git的三种状态
Git 有三种状态,你的文件可能处于其中之一:已提交(committed)、已修改(modified)和已暂存(staged)。 已提交表示数据已经安全的保存在本地数据库中。 已修改表示修改了文件,但还没保存到数据库中。 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
配置信息
全局配置
git config –global user.name “John Doe”
git config –global user.email “johndoe@example.com”
特定仓库配置,进入到要修改的仓库,同上去掉–global即可查看配置
git config –list
查看指定属性配置
git config user.name
生成ssh秘钥
ssh-keygen -t rsa -C “johndoe@example.com”
git基础命令
- 创建仓库
git init
git clone URL
- 查看文件状态
git status
git status -s
(MMA??,左M:修改且加入暂存,右M:修改未加入暂存,左右两MM:修改加入暂存后又做了修改,A:加入暂存,??:新增的文件)
- 查看文件修改的具体内容
git diff
比较自上次commit后未进入暂存状态的文件内容差别
git diff –cached
比较自上次commit后已进入缓存状态的文件内容差别
- 增删改操作
添加到暂存
git add
删除仓库中文件信息及本地文件
git rm
删除仓库中文件信息但保留本地文件
git rm –cached
移动文件
git mv
提交暂存文件
git commit -m “Message info”
添加文件到暂存并提交
git commit -am “Message info”
提交本次暂存中的文件到上次提交的记录中,即执行两次提交但只有一个提交记录
git commit –amend
撤销文件暂存状态到未暂存状态
git reset HEAD
撤销对文件的修改,恢复到上次提交时的样子
git checkout –
v
- 操作远程仓库
查看远程仓库的简称和url,执行git clone时会默认将远程仓库命名为origin
git remote
git remote -v
git remote show
添加远程仓库
git remote add
从远程仓库中抓取所有更新,但不合并
git fetch [remote-name]
远程仓库重命名,也会同时修改origin/branchname位gk/branchname
git remote rename origin gk
远程仓库的移除
git remote rm paul
- 标签
查看标签
git tag
git tag -l ‘v1.8.5*’
创建附注标签
git tag -a v1.4 -m ‘my version 1.4’
创建轻量标签
git v1.4
查看版本信息
git show v1.4
后期打标签
git tag -a v1.2 9fceb02
共享标签,将标签推送到远端服务器,默认不推送
git push origin [tagname]
- 分支
列出所有分支
git branch
创建分支
git branch
切换分支
git checkout
创建分支并切换到新建的分支
git checkout -b
删除分支
git branch -d
合并分支hotfix到master分支,切换到master分支然后合并
git checkout master
git merge hotfix
列出所有分支并列出最后一次的提交信息
git branch -v
列出已经合并到当前分支的分支
git branch –merged
列出未合并到当前分支的分支
git branch –no-merged
- 远程分支
显示远程分支
git branch -r
显示本地分支
git branch -v
显示本地分支追踪的远程分支
git branch -vv
新建远程分支,即推送一个本地分支hotfix到远端服务器并命名为hotfix
git push origin hotfix
新建远程分支,自定义远程分支名称
git push origin localfix:remotefix
检出远端分支hotfix并创建本地分支目录hotfix
git checkout -b origin/hotfix
检出远端分支hotfix并创建本地分支目录localfix
git checkout -b localfix origin/hotfix
给本地分支创建一个远程追踪
git branch -u localfix origin/hotfix
git设置http访问无密码请求
git remote set-url origin “http://”
git config –global credential.helper store
工作流
git commit //本地提交
git remote update //更新服务端数据到本地
git rebase origin/BranchName //将服务端origin/BranchName分支的数据合并到当前所在分支
git push origin BranchName //推送当前所在分支新增提的提交记录到origin的BranchName分支