目录
[1. Git简介](#1. Git简介)
[2. 下载及安装](#2. 下载及安装)
[3.8. 配置忽略文件](#3.8. 配置忽略文件)
[3.9. 凭据管理](#3.9. 凭据管理)
[4. GUI工具操作](#4. GUI工具操作)
[4.1. 全局设置](#4.1. 全局设置)
[4.2. 初始化仓库](#4.2. 初始化仓库)
[4.3. 提交代码](#4.3. 提交代码)
[4.4. 推送代码](#4.4. 推送代码)
[9. 异常问题处理](#9. 异常问题处理)
[9.1. git push失败](#9.1. git push失败)
1. Git简介
当涉及到软件开发或协作时,版本管理是一个不可或缺的概念。无论你是一个独立开发者还是一个团队成员,都会遇到需要跟踪和管理代码变更的情况。这时候,Git作为一个强大而流行的版本控制系统就发挥着重要的作用。
Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 也是Linus Torvalds为了帮助社区管理Linux内核而开发的一个开放源码的版本控制软件。2005年7月份,Linus花了两周时间自己用C写了第一个版本分布式版本控制系统。
Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper
Git是目前世界上最先进的(没有之一)分布式版本控制系统

Add
:这里的Add不只是新增文件,包含所有对文件的操作(新增、修改、删除)。同样,Commit也是如此。
Push
:将所有的Commit
推送给服务器
Pull
:将服务器新的Commit
(可能是别人提交的,或者自己另一台设备提交的)拉取下来
2. 下载及安装
git官方下载地址:Git - Downloads,下载64位安装版。

3.命令行操做
3.1全局设置
配置(config)用户名和邮箱(git仓库网站上的注册邮箱)
查看现有配置
3.2初始化仓库
创建新的本地仓库,首先创建一个目录git_test,然后在控制台进入该目录,执行初始化(init)
git init # 在指定目录初始化git本地仓库
可以通过如下命令查看仓库当前状态
git status
3.3提交代码
目录git_test中创建一个文件README.md,提交(commit)该文件
git add README.md # 或 git add .
git commit -m "第一次提交" # -m 后的提交日志必须要写
此时,我们的代码就拥有了历史记录,可以在本地随时回退到历史的版本。不要任何互联网操作。
可以使用git add .将未被版本管理的文件纳入到版本管理系统。
3.4查看提交历史
git log
3.5推送代码
如果需要永久保存代码,或者想用其他电脑获取代码,或分享给同事进行共同开发,才需要联网,把代码推送到一个公共网络的代码仓库里。
将本地仓库与远程仓库git_test_first关联起来,随后推送(push)过去
git remote add origin https://gitee.com/asnheng/git_test_01.git
git push -u origin "master"
此时,我们的代码在远程服务器(名字叫origin)也有一个永久的备份了
本地可以添加多个远程仓库,如果只有一个,名字建议使用origin
可以通过git remote -v查看有哪些远程仓库链接
3.6拉取合并代码
如果远程仓库的代码被别人修改并推送了,或者自己在其他电脑上修改推送了,则可以把那些修改拉(pull)下来,并与本地的代码进行合并。
git pull
3.7克隆仓库
我们可以去开源平台上clone别人的代码,同样的,如果你的代码仓库是公开的,则别人可以下载到你的代码。
3.8. 配置忽略文件
有一些临时文件不需要被提交,例如windows下的.swp
,苹果下的.DS_Store
。则可以通过在根目录的.gitignore
文件中添加描述,对这些文件进行忽略
objectivec
# 忽略所有.swp结尾的文件
*.swp
# 忽略指定文件
打包.zip
# 忽略目录
.idea/
3.9. 凭据管理
向git管理网站push代码时,首次需要输入账号和密码,后边会自动保存,如果需要查看、修改、删除。可打开Windows凭据管理。
- 点开始按钮(按下Windows键),搜索"凭据管理器"

2.点击Windows凭据,可对普通凭据里之前输入的用户名密码进行编辑和删除操作

4. GUI工具操作
可以通过安装GUI客户端,替代大量的命令行操作,Git官方也推荐了很多GUI工具:Git - GUI Clients
我们这里推荐使用TortoiseGit
(小乌龟):TortoiseGit -- Windows Shell Interface to Git 支持中文
- 请下载
64-bit Windows
最新版客户端 - 请下载对应的
Chinese, simplified
简体中文汉化包

4.1. 全局设置

4.2. 初始化仓库

直接点确定

4.3. 提交代码
在仓库中按住Shift按鼠标右键

输入提交日志并提交

4.4. 推送代码


9. 异常问题处理
9.1. git push失败
错误截图1:

说明远程仓库已经初始化过了(新建仓库时,勾选了初始化README.md等文件),需要先git pull
才能推送。此时由于本地也初始化过,所以建议在一个空的目录把远程仓库clone
下来,然后把项目代码拷贝进去再提交推送。
或者使用TortoiseGit进行pull操作,然后点击【合并非相关历史】:

错误截图2:

注册账户时不能勾选隐藏email,否则无法推送代码。