Git常用命令
以下Git命令笔记是博主自我学习时记录,仅供参考,实际环境中操作请先在测试环境中进行。
用户配置
查看自己的用户名和邮箱地址:
git config user.name git config user.email配置用户信息:
git config --global user.name "Your Name" git config --global user.email "email@example.com"
创建版本库
把目录变成
Git可以管理的仓库,可看见.git文件夹git init添加
readme.txt文件的改动到Git本地的暂存区git add readme.txt提交变动,并说明此次提交,从暂存区提交到
master分支git commit -m "提交文件备注"
远程库
登录
GitHub,创建一个仓库xxxxxx
本地仓库关联远程GitHub仓库,仓库名需一致git remote add origin git@server-name:path/repo-name.git把本地库的内容推送到远程,第一次推送
master分支时,加上-u参数把本地的master分支和远程的master分支关联起来,此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改git push -u origin master从远程库克隆一份到本地
git clone 地址 git clone -b <指定分支名> <远程仓库地址>查看远程库的信息,
-v显示详细信息git remote推送本地分支到远程库
git push origin master将远程库的改动拉取到本地
git pull把本地未push的分叉提交历史整理成直线
git rebase
状态&日志
仓库当前的状态,修改了什么文件,新增了什么文件
git status查看改动
git diff readme.txt查看工作区和版本库
master的区别git diff HEAD -- readme.txt查看日志
git log查看简易日志
git log --pretty=oneline查看分支合并图
git log --graph
分支管理
创建
dev分支并切换到dev分支,-b参数表示创建并切换git checkout -b dev相当于以下两条命令:
- 创建分支
git branch dev
- 切换分支
git checkout dev查看当前分支
git branch指定本地
dev分支与远程origin/dev分支的链接git branch --set-upstream-to=origin/dev dev当
dev分支有改动需要合并至master分支时:切换到
master分支git checkout master合并指定分支(
dev分支)到当前分支(master分支)git merge dev删除
dev分支-D强行删除(未合并的分支)git branch -d dev最新版本
Git可支持以下两个命令:
创建dev分支并切换到dev分支git switch -c dev切换到已有分支
git switch master分支冲突
当master分支(当前分支)与dev分支合并(git merge dev)有冲突时,git status查看冲突文件,然后修改冲突文件,git add readme.txt,然后commit通常,合并分支时,如果可能,
Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
准备合并dev分支,请注意--no-ff参数,表示禁用Fast forwardgit merge --no-ff -m "merge with no-ff" dev因为本次合并要创建一个新的
commit,所以加上-m参数,把commit描述写进去。
版本回退
Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD从指向A版本改为指向B版本
回滚到当前版本的上一版本,git log将看不到当前版本(即HEAD版本)的日志git reset --hard HEAD^回滚到某一版本,也可以是未来的版本(即消失的
HEAD版本,需要知道版本号),版本号可以不用写全,前几位即可。git reset --hard xxxxx查看命令历史,可以回到已经回滚的未来版本。
git reflog把
readme.txt文件在工作区的修改全部撤销,用版本库里的版本替换工作区的版本git checkout -- readme.txt
- 没有
git add时,用git checkout -- file- 已经
git add时,先git reset HEAD <file>回退到1,再按1.操作- 已经
git commit时,用git reset回退版本
删除文件
先手动删除文件,然后使用
git rm <file>和git add <file>效果是一样的。git rm test.txt
Gitee
Gitee:国内的Git托管服务
关联远程库
git remote add origin git@server-name:path/repo-name.git删除已关联的远程库
git remote rm origin绑定两个远程分支
git remote add github git@server-name:path/repo-name.git git remote add gitee git@server-name:path/repo-name.git git push github master git push gitee master
知识拓展
在
Git中,用HEAD表示当前版本,也就是最新的提交,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
Git版本库里有称为stage(或者叫index)的暂存区,有Git自动创建的第一个分支master。
Git管理的文件分为:工作区,版本库,版本库又分为暂存区stage和暂存区分支master(仓库)工作区>>>>暂存区>>>>仓库
git add把文件从工作区>>>>暂存区,git commit把文件从暂存区>>>>仓库查看工作区和暂存区差异
git diff查看暂存区和仓库差异
git diff --cached查看工作区和仓库的差异
git diff HEAD
暂存
暂时保存当前工作空间的改动,使用之前需
git status确定没有Untracked filesgit stash查看暂存列表
git stash list恢复暂存内容,恢复后删除
stash内容git stash pop恢复
statsh内容,恢复后不删除statsh内容git stash apply恢复指定
statsh内容,恢复后不删除statsh内容git stash apply stash@{0}将其他分支的提交内容合并到当前分支
git cherry-pick xxxxxx
GitHub
参加开源项目,
Fork开源项目到自己账号下的仓库,然后clone到本地,修改完push到自己的远程库,在远程库推送pull request给开源项目,开源项目官方库选择是否接受你的修改
作者: LORD_YE
出处:https://www.cnblogs.com/lord-ye/
版权:本文采用「署名-非商业性使用-相同方式共享 4.0 国际」知识共享许可协议进行许可。
觉得文章不错,点个关注呗!

浙公网安备 33010602011771号