#something about git
//命令格式解读:[]可选、<>必要
1.git配置信息
(https://www.runoob.com/git/git-install-setup.html)
系统级配置信息(/etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件。)
git config --system
用户级配置信息(~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 --global 选项,读写的就是这个文件。)
git config --global
项目级配置信息(当前项目的 Git 目录中的配置文件,也就是工作目录中的 .git/config 文件。这里的配置仅仅针对当前项目有效。)
git config
(每一个级别的配置都会覆盖上层的相同配置,如: .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量。)
2.三个区的基本概念
(runoob.com/git/git-workspace-index-repo.html)
工作区:
暂存区(index,.git目录下的index)
版本库(objects,.git目录下的objects目录)
工作区<--->暂存区<--->版本库
3.基本使用
创建仓库
git init [depository name]
克隆已有仓库
git clone <depository> [directory]
将工作区的变动(新增,修改,删除操作)提交到暂存区
git add <file or directory> //添加指定文件或目录到暂存区
git add . //将当前目录下的所有数据添加到暂存区 --- 推举
查看工作区与暂存区之间的变动情况
git status //信息统览
git status -s //信息简要 --- 推举
查看工作区与暂存区的变动详情
git diff //工作区与暂存区的变动详情
git diff --stat //工作区与暂存区的变动简要
git diff --cached //查看缓存区的变动情况(这是与最初从版本库下载下来时的状态进行比较)
git diff HEAD
删除操作(工作区删除操作、暂存区删除操作、)
git rm <filepath> //删除工作区和暂存区的指定文件,必须是工作区与暂存区都存在,且两者没有不同的对象
git rm --cached <filepath> //删除暂存区的指定文件,不会删除工作区的对应文件
git rm -f <filepath> //删除工作区和暂存区的指定文件,强制删除
git rm -r <directory> //删除工作区和暂存区的指定目录
移动or重命名操作
git mv <source> <target>
git mv <oldFileName> <newFileName>
将缓存区的内容恢复到工作区
git checkout <要恢复的指定文件>
git checkout . //恢复所有内容
恢复暂存区的状态,HEAD代表的是最新同步远程仓库的暂存区状态,可以指定filepath来只还原单个文件
git reset HEAD [filepath]
将暂存区的变动提交到仓库(版本库),只是提交到本地版本库,如果要同步到远程仓库,需要使用push命令
git commit
git commit -m '对本次提交的说明' //--- 推举
添加一个远程仓库及其对应别名
git remote add <别名> <远程仓库地址>
删除指定远程仓库的别名
git remote rm <远程仓库的别名>
查看当前配置有哪些远程仓库
git remote
git remote -v //显示仓库别名对应的地址 --- 推举
本地创建分支
git branch <branch name>
git checkout -b <branch name> //创建分支并且切换到该分支
查看本地分支
git branch
切换本地分支
git checkout <branch name>
删除本地分支
git branch -d <branch name>
合并本地分支,将指定分支合并到当前分支
git merge <branch name>
给远程仓库创建一个分支
git push <远程仓库的别名> <本地分支,也是要在远程创建的分支>
查看提交历史
git log //历史详情
git log --oneline //历史简要 --- 推举
git log --graph //项目开发历史,带拓扑图
git log --reverse
git log --author=<user.name> //查看指定用户的提交日志
给某个版本打标签
git tag -a <标签内容> [指定的版本号,默认不填的话是当前最新版本号]
查看已有版本
git tag
生成SSH Key
ssh-keygen -t rsa -C '在GitHub上注册的邮箱'
将SSH Key添加到github上
(https://www.runoob.com/git/git-remote-repo.html)
从远程仓库获取指定分支的数据,并合并(这里可以通过--allow-unrelated-histories参数来实现,初始化时合并两个不相关的仓库)
git pull <远程仓库别名> <分支> --allow-unrelated-histories
将本地仓库的当前分支推送到远程仓库的指定分支
git push <远程仓库别名> <分支>
从远程仓库下载指定分支的最新数据
git fetch <远程仓库别名> <分支>
将指定分支的数据合并到当前分支
git merge <远程仓库别名>/<分支>
#上传本地项目到远程仓库(项目的初始化提交)
//如果当前项目不是git项目,将当前项目初始化为git项目
git init
//先将本地项目添加到当前项目的暂存区
git add .
//将暂存区的数据提交到当前项目的版本库
git commit -m 'some description about this commit'
//创建一个远程仓库的别名
git remote add origin <远程仓库地址> //origin 是一个别名,也可以取其它名称
//将远程仓库的指定分支与本地仓库的当前分支进行合并
git pull origin master //初次提交可能会报错,可以尝试添加--allow-unrelated-histories参数,以进行强制合并
//将当前分支提交到远程仓库的指定分支
git push origin master
git-基本使用
最新推荐文章于 2024-07-29 19:30:41 发布