前言
这是我参与8月更文挑战的第3天,活动详情查看:8月更文挑战”
自我学习,仅供参考
Git、GitHub、Gitee
很多人喜欢把Git和GitHub或Gitee进行比较,他们认为都是Git开头的,以为都是一类的东西,其实Git不应该和GitHub和Gitee进行比较。
Git是一个分布式版本控制系统,在Git中参与项目的每个程序员不仅能拥有文件的当前状态,还能拥有项目完整的历史记录。
什么是分布式?
- 它就没有中央服务器的,每个人的电脑就是一个完整的版本库,并且可以不用联网;
- 相比于集中式版本控制系统,安全性更高,每个人都有完整的版本库,一台电脑出现问题,只需从别的电脑复制一下版本库就好。
GitHub是国外开源的软件项目托管平台,而Gitee(码云) 是国内的,它们都是远程仓库,数据在云端,它们的使用需要借助Git。
配置git
-
下载并安装git
-
github.com 或 gitee.com 注册账号 --> 验证邮箱
-
配置用户名 git config --global user.name 'XXX'
-
配置邮箱 git config --global user.email 'xxx'
-
查看信息 git config --list
初始化仓库
-
初始化仓库 git init
-
创建一个index.html文件
-
cat index.html查看文件内容
-
git status查看文件状态
-
git add . 或者 git add index.html 添加文件到暂存区
-
git commit -m 'XXX'
文件状态
常用命令
本地
-
git reset HEAD XXX 暂存区与版本区一致
-
git checkout XXX暂存区覆盖工作区
-
git m XXX --cached 删除暂存区的文件
-
git commit -a -m 'XXX' git add .和 git commit -m 'XXX'的缩写
-
git reflog查看引用版本号
分支
-
git branch 查看本地分支
-
git branch -r 查看远程分支
-
git branch XXX 创建分支(不会自动在新建分支上)
-
git checkout XXX 切换分支
-
git checkout -b XXX 创建并切换到XXX分支
-
git merge XXX 把XXX分支合并到当前分支
-
git branch -d XXX 删除分支
-
git merger --abort 放弃解决冲突,取消merge
远程同步
-
git fetch [remote] 下载远程仓库的所有变动
-
git remote -v 查看所有远程仓库
-
git pull [remote] [branch] 拉取远程仓库
-
git push [remote] [branch] 推送到远程仓库
-
git push [remote] --force 强行推送到远程仓库(即使有冲突)
-
git push [remote] --all 推送所有分支到远程仓库
撤销
-
git reset [file] 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
-
git reset --hard 重置暂存区与工作区,与上一次commit保持—致
-
git reset [ commit] 重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变
-
git reset -—hard [ commit] 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致