刚开始用 Git 的小白适用, 参考链接: http://www.cnblogs.com/qijunjun/p/7137207.html
实际项目开发中, 我们经常会用一些版本控制器来托管自己的代码, 今天就来总结下 Git 的相关用法, 废话不多说, 直接开写.
目的: 通过 Git 管理 GitHub 上托管的项目.
一, 下载安装 Git
在你开始使用 Git 前, 需要将它安装在你的计算机上. 对应的计算机有 Windows 系统的, Linux 系统的, MacOS 系统的. 本博主使用的是 Windows 系统. 所以安装 Windows 版本的 Git.
在 Windows 上安装 Git 也有几种安装方法. 方式一: 官方版本可以在 Git 官方网站下载. 打开 https://git-scm.com/download/win, 下载会自动开始. 要注意这是一个名为 Git for Windows 的项目(也叫做 msysGit), 和 Git 是分别独立的项目; 更多信息请访问 http://msysgit.github.io/. 方式二: 另一个简单的方法是安装 GitHub for Windows. 该安装程序包含图形化和命令行版本的 Git. 它也能支持 Powershell, 提供了稳定的凭证缓存和健全的 CRLF 设置. 可以在 GitHub for Windows 网站下载, 网址为 http://windows.github.com.
本博主使用的是方式一:
1, 下载 Git, 官方地址为: https://git-scm.com/download/win
2, 下载完之后, 双击 exe 文件安装
3, 选择安装目录
4, 选择组件
5, 开始菜单目录名设置
6, 选择 Git 默认使用的编辑器
7, 选择使用命令行环境
8, 以下四步默认, 都是直接点击下一步, 最后点击安装
9, 安装完成
10, 检验是否安装成功
回到电脑桌面, 鼠标右击如果看到有两个 Git 单词则安装成功
二, Git 的基本工作流程
1,Git 工作区域图解
2, 向仓库中添加文件流程
三, Git 的初始化及仓库创建和操作
1,Git 安装之后需要进行一些基本信息设置
a, 设置用户名: Git config --global user.name "在 GitHub 上注册的用户名";
b, 设置用户邮箱: Git config --global user.email "在 GitHub 上注册的邮箱";
注意: 该配置会在 GitHub 主页上显示谁提交了该文件. 命令结尾处加不加分号均可.
c, 配置 ok 之后, 我们用如下命令来看看是否配置成功: Git config --list
注意: Git config --global 参数, 有了这个参数表示你这台机器上所有的 Git 仓库都会使用这个配置, 当然你也可以对某个仓库指定不同的用户名和邮箱. 如下:
如何修改 Git 全局初始化的用户名和邮箱? 答: 使用 --replace-all
- Git config --global --replace-all user.name "在 GitHub 上注册的用户名";
- Git config --global --replace-all user.email "在 GitHub 上注册的邮箱";
然后再查看下: Git config --list
补充: 说说 Git bash 和 Git cmd 的区别. 简单一句话, Git cmd 是 Git bash 的子集. 所以我们直接用 Git bash 就行了, Git gui 是图形界面.
Git: 版本控制工具, 支持该工具的网站有 GitHub,BitBucket,Gitorious, 国内的 OSChina 的码云仓库, csdn 仓库, Coding 等等.
shell: 是 Linux,unix 系统的外壳, 也可以理解为命令行, 就是你输入并执行命令的地方, Git 通过命令行和图形界面两种方式使用 shell.
bash: 是 shell 的一种, 最常用的 shell 之一.
Git bash: 方便你在 Windows 下使用 Git 命令的模拟终端(Windows 自带的 cmd 功能太弱),Linux,unix 下可以直接使用 Git.
Git shell: 它是安装了 Git 的 shell,bash 是一种 shell.
我们使用 Git 自带的命令行模式 Git bash 来演示(Windows 自动的 cmd 也可以哦):
2, 初始化一个新的本地 Git 仓库
a, 创建文件夹
方法一: 在本地计算机可以鼠标右击 --> 点击新建文件夹 test01
方法二: 使用 Git 新建: mkdir test01
b, 在文件内初始化 Git(创建 Git 仓库)
方法一: 直接输入 cd test01, 然后输入 Git init
方法二: 点击 test01 文件下进去之后 --> 鼠标右击选择 Git Bash Here --> 输入 Git init
3, 向本地仓库中添加文件
方法一: 打开编辑器直接新建 index.HTML 文件
方法二: 使用 Git 命令 touch 文件名, 然后把文件通过 Git add 文件名添加到暂存区, 最后提交操作
将文件从暂缓区提交到仓库
4, 修改仓库文件
方法一: 用编辑器打开 index.HTML 直接进行修改
方法二: 使用 Git 命令 VIM "文件名", 然后在中间写内容, 保存并退出编辑模式命令: qw, 最后提交操作
5, 删除仓库文件
方法一: 在编辑器中直接把要删除的文件删除掉
方法二: 使用 Git 删除 Git rm 文件名, 然后提交操作
注意: 以上演示中的双引号均可以省略.
四, Git 管理远程仓库
1, 使用远程仓库的目的: 备份, 实现代码共享, 集中化管理代码.
Git 远程仓库实际上就是保持在远程服务器上的 Git 仓库文件.
即 Git 仓库文件的位置从本地变为远程服务器了.
将本次仓库提交到远程仓库
五, Git 克隆操作
目的: 将远程仓库 (GitHub 上对应的项目) 下载 (复制) 到本地
1, 命令: Git clone 仓库地址
远程仓库地址的由来如下:
2, 克隆项目
3, 将本地仓库同步 (上传) 到 Git 远程仓库中: Git push
注意: 将当前文件夹中的所有文件都提交命令: Git add .
出现错误的情况有:
a, 如果出现无法同步或没有权限, 解决方法如下:
用户名和密码一定要和 GitHub 上的一致.
六, 补充图形化界面的操作演示
6.1, 使用 Git GUI 克隆已存在的远程仓库
1, 在本地新建一个文件夹 test, 选中后点击右键, 选择 Git GUI Here,
出现下图, 选择第二个, 克隆已经存在的仓库.
2, 填写 Source Location(源地址)和 Target Directory(目标目录).
3, 点击上图的 Clone 后, 会提示下输入你 GitHub 的用户名和密码, 出现下面的界面, 表示克隆完成. 你可以查看本地克隆的文件.
6.2, 将本地仓库同步 (上传) 到 Git 远程仓库中
1, 右键选择 Git GUI Here 进如 Git 界面.
2, 选择 Edit 选择卡, 选择 Options.
3, 填写 GitHub 的用户名和邮箱信息, 并修改默认的编码为 utf-8.
4, 首次使用会在某一步的时候会跳出界面, 让你输 GitHub 的用户名和密码, 输完就继续操作.
按步操作如下:
注意: 可能会在第 5 步 Push 时, 需要我们输入远程仓库的地址, 输入完成后, 点击 Push.
上图下面有 3 个选项, 中文意思是:
第一个: 立刻获取最新改动 (所以如果是本地克隆(下载) 远程一个项目, 也可以这样操作).
第二个: 本地新建的项目, 初始化远程仓库并发布过去.
第三个: 什么也不做.
5, 等待上传完成.
6, 查看远程仓库, 就可以看到刚刚提交的内容了.
6.3, 解决合并冲突的问题
1, 远程仓库重置项目后, 把本地文件直接 push, 会出错, 这是由于 Git 本地端文件与远程服务器端文件不一致产生冲突导致的.
2, 遇到这种情况需要先从远程仓库拉取 (pull) 一下文件, 解决下合并冲突的问题后再 push.
拉取 (pull) 成功后显示
3, 获取完远程服务器代码后, 就需要与我们本地的代码合并, 保证我们本地的代码此时处于最新状态.
菜单 --> Merge --> Local Merge, 在 Merge 弹窗中选择 Merge 按钮, 成功后会有 Success 弹窗出现.
出现如图:
选择完后, 就会弹出分支选择合并窗口, 红色箭头指向的就是我本地需要合并的分支(Git 是多分支的, 注意不要选错).
点击 Merge 就完成合并了.
1, 注意: 不管你本地有没有代码, fetch 之后, 是都要 merge(合并)的, 也就是说, fetch 下来后, 代码还在缓存区里, 我们需要把它合并到自己本地项目中(即磁盘上)(这和上传代码时先将代码放到暂存区里道理一样).
2, 当我们本地修改的内容, 其他同事也修改了同一内容, 并且先于我们自己提交, 即说明远程仓库发生改变了, 此时如果我们本地 push 代码就会产生代码冲突, 我们本地需要解决冲途(冲突一般都是相同行数修改引起的), 此时我们就要看看到底怎么修改冲突才合理(最好和同事商量, 看看他修改了哪些内容, 目的是啥, 避免修改冲突时去掉同事的代码), 即如果合并之后检测到文件有冲突, 是会提示 Command Failed 失败的, 并且 Git Gui 是会获取到冲突文件, 对于冲突文件的解决, 可以右键选择使用远程版本的还是本地版本的, 并且本地已经被打开的话, 是会提示是否 overwritten, 按照此方法挨个解决下冲突文件即可.
来源: https://www.cnblogs.com/chenmingjun/p/10160410.html