使用 Git 的操作流程
1.Git 的下载与安装
首先去 https://git-scm.com/downloads 这个网站下载与自己电脑相匹配的 Git 的安装文件下载完毕后点击运行, 一路点击 next 即可完成安装.
2. 创建版本库
首先选择一个合适的地方, 创建一个空目录, 然后进入当前目录, 在当前目录下右键, 点击 Git Bush, 可以使用 pwd 命令来显示当前目录, 接着使用 git init 命令把这个目录变成 Git 可以管理的仓库然后你就会看到这个目录下多了一个. git 的目录, 这个目录就是 Git 来追踪和管理版本库的, 如果系统默认隐藏了这类后缀名的文件你可能就会看不到, 使用 ls-ah 命令就可以看见.
3. 配置你的 git 仓库的用户邮箱和用户名
- git config --global user.email "your email"
- git config --global user.email "your name"
4. 添加远程仓库
常用的 git 操作命令
(1) git clone <版本库的网址> <本地目录名> 克隆远程仓库到本地
我比较推荐: 去 GitHub 网站上创建一个项目仓库, 复制仓库地址, 然后再本地选择一个你想要存放这个项目的地方, 新建一个空的文件夹, 在这个文件夹下面右键选择 git Bush, 然后使用 git clone <你复制的地址>, 这里本地目录名省略则默认时当前目录, 就可以把你的项目克隆到本地了.
(2) git add 添加文件到暂存区
git add <filepath>
添加你新建的文件到暂存区.
git add .
把工作时的所有变化提交到暂存区, 包括文件内容修改 (modified) 以及新 (new) 文件, 但不包括删除的文件("." 是匹配符, 这里可以代指匹配所有).
git add -u
u(update 的缩写), 该命令仅监控已经被 add 的文件, 它会将被修改的文件 (即 tracked file) 提交到暂存区. 不会提交新文件(untracked file)
git add -A
是 git add . 和 git add -u 这两个命令功能的合集, 提交所有修改的 (modified) 文件到暂存区, 包括新文件(new).
git add -i
我们可以通过 git add -i [<path>]命令查看 < path > 中被所有修改过或已删除文件但没有提交的文件,
补充: 通过 git add <匹配符>的方式你可以添加符合特定条件的文件, 例如 hello* 表示添加以 hello 开头的文件的修改添加到暂存区, 具体的写法大家可以自行百度下 ^_^^_^
git push -u origin master // 把本地库的所有内容推送到远程库上
(3)git commit 提交修改的文件到工作区
git commit -m "<modify message>"
提交所有暂存区的文件
git commit -am | -a -m "<modify message>"
提交所有被跟踪的修改过的文件, 包括没有进入暂存区的文件
git commit --amend
取消上一次的提交
- (4) git pull // 从远程仓库拉取数据同步到本地
- (5) git push // 从本地仓库推送 (同步) 修改到远程仓库
关于 git push 的几个扩展的用法
git push -u origin master
如果当前分支与多个主机存在追踪关系, 则可以使用 -u 参数指定一个默认主机, 这样后面就可以不加任何参数使用 git push, 不带任何参数的 git push, 默认只推送当前分支, 这叫做 simple 方式, 还有一种 matching 方式, 会推送所有有对应的远程分支的本地分支, Git 2.0 之前默认使用 matching, 现在改为 simple 方式如果想更改设置, 可以使用 git config 命令. git config --global push.default matching OR git config --global push.default simple; 可以使用 git config -l 查看配置
git push --all origin
当遇到这种情况就是不管是否存在对应的远程分支, 将本地的所有分支都推送到远程主机, 这时需要 -all 选项
git push --force origin git
push 的时候需要本地先 git pull 更新到跟服务器版本一致, 如果本地版本库比远程服务器上的低, 那么一般会提示你 git pull 更新, 如果一定要提交, 那么可以使用这个命令.
5. 查看仓库文件的状态
使用 git status 命令可以让我们时刻掌握仓库当前的状态, 比如那些文件被修改, 那些文件需要提交等等.
6. 比对版本间某文件的差异
使用 git diff "filename" 就可以查看某个文件修改前后的版本的不同
7. 查看版本日志
使用 git log 命令我们可以查看某个项目从最近到最远的提交日志. 如果内容太多, 可以试试加上 --pretty=online 来进行筛选.
8. 回退之前的版本
在 Git 中, HEAD 表示当前的版本, 我们可以通过 git reset --hard HEAD^| commit id, HEAD^ 是上一个版本, HEAD^^ 是上上个版本, 如果上一百个版本则采用, HEAD~100. 我们也可以通过 commit id
回退到某个指定的版本.
9.git reflog
git reflog 可以记录你的每一次命令, 方便你随时查看历史操作记录
10.git checkout -- filename
git checkout -- filename 这一指令可以将修改过但还未 commit 的文件版本返回至最近一次 commit 或者 add 的状态.
11. 关于版本控制的小结
场景 1: 当你改乱了工作区某个文件的内容, 想直接丢弃工作区的修改时, 用命令 git checkout -- file.git checkout -- file 还可以一键还原误删的文件.
场景 2: 当你不但改乱了工作区某个文件的内容, 还添加到了暂存区时, 想丢弃修改, 分两步, 第一步用命令 git reset HEAD file, 就回到了场景 1, 第二步按场景 1 操作.
场景 3: 已经提交了不合适的修改到版本库时, 想要撤销本次提交, 参考版本回退一节, 不过前提是没有推送到远程库.
12. 删除文件
- git rm filename
- git commit -m "remove a file"
13.Git 分支
Git 鼓励大量使用分支:
查看分支: git branch
创建分支: git branch <name>
切换分支: git checkout <name>
创建 + 切换分支: git checkout -b <name>
合并某分支到当前分支: git merge <name>
删除分支: git branch -d <name>
说明: 记得养成良好的习惯, 每次添加修改和删除文件的时候都要先添加到暂存区再提交, 每一次提交的时候要写说明, 修改了哪些地方, 方便日后查看.
来源: https://juejin.im/entry/5b0275be6fb9a07ace592be3