常用命令速览
git init // 初始化git仓库
git status //查看文件状态
git add 文件列表 // 追踪文件,添加到暂存区
git add . // 将工作目录中的文件全部添加到暂存区, .代表全部
git commit -m '提交信息' // (将暂存区所有文件提交到Git仓库)向仓库中提交代码,一次一个功能,提交信息必须写
git log // 查看提交记录
git checkout 文件名 //用暂存区中的文件覆盖工作目录中的文件
git rm --cached 文件名 //将文件从暂存区中删除
git rest --hard commitID //将git仓库中指定的更新记录恢复出来,并且覆盖暂存区和工作目录
git branch //查看分支
git branch 分支名称 //创建分支
git checkout 分支名称 //切换分支(切换前要保持clear,即该分支全部文件已提交到Git仓库,否则分支文件会出现到切换的分支上)
git checkout -b login // 创建并切换到login新分支上。(login是要创建的新分支名称)
git merge 来源分支名称 //合并分支
git branch -d 分支名称 //删除分支(分支被合并后才允许删除。针对不想合并又想删除的分支用-D强制删除)
git stash //存储临时改动
git stash pop //恢复改动
git push //推送本地仓库到远程仓库
git push -u 远程仓库地址别名 分支名称 //-u 记住推送地址及分支,下次推送只需输入git push
git remote add 远程仓库地址别名 远程仓库地址 //设置远程仓库地址别名(设了别名才可以使用别名进行操作)
git clone 远程仓库地址 //克隆仓库,克隆远端数据仓库到本地(首次拉取使用clone)
git pull //拉取远程仓库中最新的版本,会merge
git fetch // 获取远程仓库中最新的版本,但不会自动merge
git remote //查看当前仓库名称
git remote -v //查看更详细的权限信息
git tag //查看版本
git tag [tagName] //创建版本
git tag -a <tagName> -m '描述信息' //创建带注释的tag
git tag [tagName] //删除版本
git pull origin --tags //合并远程仓库的tag到本地
git push origin --tags //上传本地tag到远程仓库
git version //查看当前git版本
git update-git-for-windows //git2.17.1版本之后的更新命令(windows)
git config --global user.name '提交人姓名' //配置提交人姓名
git config --global user.email '提交人邮箱' //配置提交人邮箱
git config --list //查看git配置信息
一、 Git介绍
Git是什么
版本管理是一种记录文件变化的方式,以便将来查阅特定版本的文件内容。
Git是一个版本管理控制系统(缩写VCS),它可以在任何时间点,将文档的状态作为更新记录保存起来,也可以在任何时间点,将更新记录恢复回来。
Git安装与版本更新
- 安装
下载地址:https://git-scm.com/downloads
在安装的过程中,所有选项使用默认值即可。
- 版本更新
git version //查看当前git版本
git update //git2.17.1版本之前的更新命令
git update-git-for-windows //git2.17.1版本之后的更新命令(windows)
Git基本工作流程
git仓库 | 暂存区 | 工作目录 |
---|---|---|
用于存放提交记录 | 临时存放被修改的文件 | 被git管理的项目目录 |
Git使用前配置
在使用 git 前,需要告诉 git 你是谁,在向 git 仓库提交时需要用到。
git config --global user.name '提交人姓名' //配置提交人姓名
git config --global user.email '提交人邮箱' //配置提交人邮箱
git config --list //查看git配置信息
- 如果要对配置信息进行修改,重复上述命令即可。
- 配置只需要执行一次。
Git忽略清单
将不需要被git管理的文件名字添加到此文件中,在执行git命令的时候,git就会忽略这些文件。
git忽略清单文件名称:.gitignore
在工作目录中新建名字为.gitignore的文件,将忽略的文件写入该文件中即可
二、Git常用命令
提交步骤
git init // 初始化git仓库
git status //查看文件状态
git add 文件列表 // 追踪文件,添加到暂存区
git add . // 将工作目录中的文件全部添加到暂存区, .代表全部
git commit -m '提交信息' // (将暂存区所有文件提交到Git仓库)向仓库中提交代码,一次一个功能,提交信息必须写
git log // 查看提交记录
撤销
git checkout 文件名 //用暂存区中的文件覆盖工作目录中的文件
git rm --cached 文件名 //将文件从暂存区中删除
git rest --hard commitID //将git仓库中指定的更新记录恢复出来,并且覆盖暂存区和工作目录
git rest --hard commitID
- 比如提交过3次到Git仓库,现在恢复第一次提交的,恢复之后会覆盖暂存区和工作目录,git log 也会只剩第一次
分支
git branch //查看分支
git branch 分支名称 //创建分支
git checkout 分支名称 //切换分支(切换前要保持clear,即该分支全部文件已提交到Git仓库,否则分支文件会出现到切换的分支上)
git checkout -b login // 创建并切换到login新分支上。(login是要创建的新分支名称)
git merge 来源分支名称 //合并分支
git branch -d 分支名称 //删除分支(分支被合并后才允许删除)
git branch -D 分支名称 //-D 强制删除,针对不想合并又想删除的分支
git checkout -b login 等价于
git branch login
git checkout login
暂时保存更改
git可以暂时提取分支上所有的改动并存储,得到一个干净的工作副本,临时切换其他分支。
git stash //存储临时改动
git stash pop //恢复改动
远程仓库
远程仓库相当于一个“文件管理服务器”,利用这个服务器可以更方便的进行团队协作。
常见:GitHub、Gitee、GitLab
// 将本地仓库推送到远程仓库
git push 远程仓库地址 分支名称
git push 远程仓库地址别名 分支名称
git push -u 远程仓库地址别名 分支名称 //-u 记住推送地址及分支,下次推送只需要输入git push即可
git remote add 远程仓库地址别名 远程仓库地址 //设置远程仓库地址别名(设了别名才可以使用别名进行操作)
使用clone克隆下来的项目,已设置的远程仓库地址别名也会一起克隆下来,可以直接使用git push
解决冲突
在多人同时开发一个项目时,如果两个人修改了同一个文件的同一个地方,就会发生冲突。冲突需要人为解决。(先推送的人才能推送成功,后推送的不能成功,因为此时远程版本高于本地版本)
第二个人需要拉取远程仓库内容,修改冲突后再提交
// 拉取操作
git clone 远程仓库地址 //克隆仓库,克隆远端数据仓库到本地(首次拉取使用clone)
git pull 远程仓库地址 分支名称 //拉取远程仓库中最新的版本,会merge
git fetch // 获取远程仓库中最新的版本,但不会自动merge
clone、pull和fetch的区别:
- clone是第一次在本地没有文件的情况下使用
- pull是已经有本地文件的情况下使用,会将远程和本地进行比较,留下最新版本
- fetch 相当于是从远程获取最新版本到本地,但不会自动合并
// 查看仓库信息
git remote //查看当前仓库名称
git remote -v //查看更详细的权限信息
git remote -v示例:
fetch代表可以拉取仓库,push代表可以推送
如果没有权限只能拉取的情况下不会显示push
tag(版本)操作
git tag //查看版本
git tag [tagName] //创建版本
git tag -a <tagName> -m '描述信息' //创建带注释的tag
git tag [tagName] //删除版本
git pull origin --tags //合并远程仓库的tag到本地
git push origin --tags //上传本地tag到远程仓库