以下内容是在 Windows 上验证的效果。
1. git安装
在 git 官网 下载需要的版本,安装即可。
安装完成之后,在电脑任意位置右键,出现下图中命令,说明安装成功了
- git GUI Here: 图形化界面
- git Bash Here: 命令窗口界面,建议使用此命令打开
2. 常用命令
2.1 初始化
命令: git init
初始化仓库,初始化会生成一个 .git 的隐藏文件夹,用来对我们项目代码进行备份存储
2.2 配置个人信息
配置用户名: git config --global user.name "用户名"
配置邮箱: git config --global user.email "邮箱"
注意: 配置邮箱时,邮箱可以是不存在的,但是要符合邮箱的命名规则,命令之间可以有多个空格,但至少要有一个。 例:
git config --global user.name "muzi"
git config --global user.email "mz@qq.com"
如果命令后面不跟参数,则可以查看用户名和邮箱
git config user.name
git config user.email
2.3 提交代码到本地
提交到暂存区:
git add 文件路径
: 将所指定的文件放到暂存区
git add .
: 将所有被修改的文件添加到暂存区
git commit -m '提交信息'
: 将暂存区的文件提交到版本库中
每次将文件先提交到暂存区,再提交到版本库太麻烦,可以缩写为一个命令,直接从工作区提交到版本库。
命令: git commit --all -m "提交信息"
- --all 表示是把所有修改的文件提交到版本库
我们将根目录(不包括 .git 文件)叫做 工作区,将 git add
命令之后存放代码的地方叫做 暂存区, 将 git commit -m
命令之后存放代码的地方叫做 版本库。
例:
git add ./readme.md
git commit -m "完成首页"
注意:如果在输入命令时,git commit 就直接回车,会进入另一种模式,这是一种编辑模式,也可以用来填写 '说明信息',需要按 ”i“ 键,就可以输入了。
2.4 查看状态
命令: git status
用来查看当前代码有没有被放到仓储中去
如果查看的状态提示是红色,说明修改后的文件还没有执行 git add 命令
如果是绿色,说明执行了 git add, 但是没有执行 git commit 命令
如果提示 clear ... , 说明已经提交到了git仓库中(版本库中)。
2.5 查看日志
git log
: 查看历史提交记录
git log --oneline
: 提交日志一行展示,查看简洁版的记录
git reflog
:查看所有提交记录
注意: git log
只能查看当前版本之前的提交历史记录,比如提交了五次,此时 git log
可以查看到五次提交记录,如果回退到第三次提交,再使用 git log
,就只显示前三次的提交历史,第四次和第五次的不显示。
此时,可以用 git reflog
命令,来查看所有的提交历史。
2.6 版本回退
命令: git reset --hard 版本号
例如
// 回退到上一次代码提交时的状态
git reset --hard Head~0
// 回退到上上次代码提交时的状态
git reset --hard Head~1
// 通过版本号精确的回退到某一次提交时的状态
git reset --hard 97fg35
注意: 上面 Head~0
, 表示回退到上一个版本,通过数字的改变,可以回退到不同的版本,但是如果提交的版本次数很多时,这个数字就不容易确定,而且还有可能输错,比如将 89 输成 88。 这时,可以通过版本号来精确回退。
2.7 分支
默认有一个主分支 master
git branch
: 查看本地当前有哪些分支, 带星号且绿色标记的表示当前正处于的分支。
git branch 分支名
: 创建分支
git checkout 分支名
: 切换分支
git merge 分支名
: 合并分支
git branch -d 分支名
: 删除分支
git branch -r
: 查看远程有哪些分支
git checkout -b 分支名
: 创建并切换分支
注意: 合并分支时必须处于要合并到的分支, 例如将 dev 分支合并到 master 分支,必须先处于 master 分支。 删除分支,必须先位于其它分支, 比如删除 dev 分支,当前分支不能是 dev 。
// 创建 dev 分支
git branch dev
// 切换到 login 分支
git checkout login
// 合并 dev 分支到 login 分支(上一步已经切换到了 login 分支)
git merge dev
// 删除 dev 分支(上一步已经切换到了 login 分支)
git branch -d dev
2.8 提交到远程分支
命令: git push [远程仓库地址] [远程仓库分支名称]
例: git push https://github.com/mz/test112.git master
2.9 拉取远程分支
git clone 仓库地址
: 一般只在第一次拉取代码时使用。
git pull 仓库地址 分支名称
: 拉取远程分支数据到本地分支
2.10 简化 push 和 pull操作
提交和拉取代码在日常开发中使用频率非常高,如果每次都输入 仓库地址和分支名称,就显得有些麻烦了,我们可以通过设置简化每次操作的命令。
git remote add xxx 远程仓库地址
: 与远程仓库建立关联
例: git remote add origin git@github.com:mz/test.git
, 以后提交和拉取就可以用如下命令: git push origin master
, git pull origin dev
, 相当于用 origin 指代了仓库地址, 当然 roigin 名称可以任意起。
当提交代码时,加一个参数,之后拉取和提交会更简单, 只需要在第提交代码时加上 -u
参数, 例 git push origin -u master
, 就可以将本地的当前分支 与 -u
后面的远程分支建立关联,以后提交和拉取只需要使用 git push
, git pull
就可以了。
3. git中的忽略文件
在 .gitignore
这个文件中可以设置要被忽略的文件或者目录。
被忽略的文件不会被提交仓储里去
该文件位于项目根目录下。如果没有,可以自己手动创建。
在 .gitignore
中设置忽略文件的方法:
- 以
/
开头 - 一行写一个路径
- 例如
/.idea
: 会忽略.idea
文件/js
: 会忽略 js 目录下的所有文件/js/*.js
: 忽略js目录下所有js文件