常用命令
Git四种状态
0.未被管理的文件(Untracked),检测到有新的的文件,但还没被git跟踪管理
1.已修改(modified)修改了文件,但是还没有保存到数据库中
2.已暂存(staged)对一个已修改的文件的当前版本做了标记,让其包含在下次提交的快照中
3.已提交(committed)数据已经安全的保存在本地数据库中
Git初始设置
git config -global user.name "your name"
git config -global user.email youremail@email.com
初始化仓库
git init
加入文件提交本地仓库
git add .
git commit -m '提交信息'
git commit -a -m '提交信息' //相当于上面两句
克隆远程现有仓库
git clone 远程仓库地址
如果想定义本地的仓库名称,可以使用在后面加入自己的名称
git clone 远程仓库地址 自定义仓库名
检查当前文件状态
git status
查询文件更新哪些部分
git diff
删除指定文件
git rm 文件名
查看提交历史
git log
git reflog
git log --pretty=oneline //简单的输出提交的历史记录
查看关联的远程仓库
git remote //查看关联的名字
git remote -v //查看远程仓库地址
删除远程仓库
git remote rm 远程仓库地址
推送
git push
撤回操作
在该工作区修改后如何撤回?
1. git checkout -- filename 撤销特定文件工作区的修改
2. git checkout . 撤销所有工作区的修改
在git add 命令后 如何撤销已经加入到暂存区的文件呢?
1.git reset HEAD -- . 撤销所有
2.git reset HEAD -- filename 撤销特定目标
3.git rm -cached filepath 将文件从缓存中删除
//注意:上面的步骤是从暂存区撤回到工作区状态,若想工作区也撤回,再执行工作区的撤回方法
已经提交了不合适的修改到版本库时,如何撤销本次提交?
//前提是没有推送到远程库
1. git log 或 git reflog 查看提交的版本号
2. git reset --hard commitId(版本号) 回退到对应版本
打标签
列出已有标签
git tag
轻量级标签
git tag 标签名
附注标签
git tag -a 标签名 -m '标签信息'
标签信息和提交信息
git show 标签名
在对应的版本号上后期打标签
git tag -a 标签名 版本号
将标签推送到远程仓库
git push origin 标签名 //需要先打上标签
一次上传多个标签
git push origin --tags
分支操作
创建分支
git branch 分支名称
删除分支
git branch -d 分支名称
强行删除未合并的分支
git branch -D 分支名称
删除远程分支
方法一: git push origin --delete 远程分支名称
方法二: git push origin :远程分支名称
创建并切换到跟踪远程分支dev
远程分支存在
git checkout -b dev origin/dev
git checkout --track origin/dev
远程分支不存在,本地分支存在
git push origin 本地分支名:远程分支名
查看关联的远程分支
git branch -vv
查看分支合并图
git log --graph
创建并切换分支
方法一: git switch -c dev
方法二: git checkout -b dev
切换分支
方法一: git switch dev
方法二: git checkout dev
查看分子
git branch
查看分支最后一次提交的内容
git branch -v
查看哪些分支已经合并到当前分支
git branch --merged
查看未合并的分支
git branch --no-merged
合并分支
//merge操作会生成一个新的节点,之前的提交分开显示。
//而rebase操作不会生成新的节点,是将两个分支融合成一个线性的提交。
git merge dev
git rebase dev
//merge
D--------E
/ \
A---B---C---F----G--- dev, master
//rebase
A---B---D---E---C‘---F‘--- dev, master
拉取
git pull //拉取并合并
git pull --rebase
git fetch //只拉取到本地,并不会合并,需要程序员自己去git merge 去合并
rebase好处
想要更好的提交树,使用rebase操作会更好一点。
这样可以线性的看到每一次提交,并且没有增加提交节点。
merge 操作遇到冲突的时候,当前merge不能继续进行下去。手动修改冲突内容后,add 修改,commit 就可以了。
而rebase 操作的话,会中断rebase,同时会提示去解决冲突。
解决冲突后,将修改add后执行git rebase –continue继续操作,或者git rebase –skip忽略冲突。
网友评论