Git和GitHub从入门到放弃
Git的安装及配置
Git是一个版本控制管理工具,在项目管理方面有着极其重要的作用。下面是Git的安装步骤:
Git安装
Git官网:https://git-scm.com/
在官网下载相应软件后,进行双击安装,一路next即可。
安装完成后,在任意文件夹下右击,可看到其两个标志,其中Git Bash Here
是我们常用的选项:
点击可进入Git命令行,输入git --version
后回车,出现版本信息即安装成功!
Git使用前配置
使用Git前,你需要告诉Git你是谁,有如下配置:
配置提交人名称:
git config --global user.name 你的名称
配置提交人邮箱:
git config --global user.email 你的邮箱
查看git配置信息:
git config --list
注意:你的名称和邮箱应该尽量与你的GitHub名称及邮箱保持一致,如果需要修改,重复以上代码即可。
Git的使用
提交步骤
git init
初始化git仓库,执行后文件夹中会有一个.git文件夹,如果没有,则选择显示隐藏文件git status
查看文件状态git add 文件列表
追踪文件,添加到暂存区git commit -m 提交信息
向仓库提交代码,并标上相应的信息git log
查看提交记录
撤销方法
git checkout 文件
用暂存区的文件覆盖工作目录中的文件;git rm --cashed 文件
将文件从暂存区中删除;git reset --hard commitID
恢复到指定的提交记录并覆盖暂存区和工作目录,之后的提交记录也会消失;commitID
使用git log
获取;
分支的使用
分支可以理解为当前工作目录的一个副本,使用分支可以使开发从主线上分离出来,避免影响主线开发。
分支细分
- 主分支(master): 第一次向git仓库中提交更新记录时自动产生的一个主线分支。
- 开发分支(develop):作为开发的分支,基于master分支而创建。
- 功能分支(feature):作为开发具体功能的分支,基于开发分支创建。
分支命令
git branch
查看分支git branch 分支名称
创建分支git checkout 分支名称
切换到该分支git merge 来源分支
合并分支git branch -d 分支名称
删除分支(分支合并后才可以被删除)(-d改为-D强制删除)
暂时保存更改
在git中,可以暂时提取分支上所有的改动并存储,让开发人员得到个干净的工作副本,临时转向其他工作,相当于一个剪贴板的作用。
使用场景:当当前分支未开发完成,放到暂存区但未提交到库,这时需要做其他任务,如果直接过去,那么暂存区的内容也将被携带过去。这时,就需要以下命令将暂存区内容暂时存储到类似剪贴板的地方,并清空暂存区,之后再恢复。
- 存储临时改动:
git stash
- 恢复改动:
git stash pop
(恢复前要在正确的分支上恢复,否则会恢复到其他分支上)
GitHub的使用
在版本控制系统中,大约90%的操作都是在本地库中进行的:暂存,提交,查看状态或者历史记录等等,除此之外,如果仅仅只有你一个人在这个项目里工作,那么本地仓库就足够了。
当你要和你的开发団队共享数据时,设置一个远程仓库才有意义。你可以把它想象成一个“文件管理服务器”,利用这个服务器可以与开发团队的其他成员进行数据交换。
GitHub注册
前往GitHub主页,点击Sign up进行注册账号。填写相应的用户名、邮箱、密码等相应信息即可。
多人协作流程
- A在自己的计算机中创建本地仓库;
- A在 github中创建远程仓库;
- A将本地仓库推送到远程仓库;
- B克隆远程仓库到本地进行开发;
- B将本地仓库中开发的内容推送到远程合库;
- A将远程仓库中的最新内容拉去到本地。
仓库初建时

仓库建成后

将本地仓库推送到远程仓库
在GitHub上创建一个仓库,找到其仓库地址:
推送到远程仓库的命令
git push 远程仓库地址 分支名称
git remote add 远程仓库别名 远程仓库地址
(给远程仓库起一个别名,一般设置origin)git push 远程仓库别名 分支名称
git push -u 远程仓库别名 分支名称
(-u表示记录推送地址及分支,下次推送只需要输入git push
即可)
从本地向远程仓库提交的基本步骤
git add 文件列表
追踪文件,添加到本地暂存区;git commit -m 提交信息
向本地仓库提交代码,并标上相应的信息;git push 远程仓库别名 分支名称
提交到远程仓库。(别名需要事先声明)
克隆远程仓库
- 克隆远程仓库:
git clone 仓库地址
(另外,其地址别名也会被克隆过来)
克隆者向远程仓库提交代码
克隆不需要权限,但是如果克隆后对代码进行贡献,且想要推送到原远程仓库就需要被授予一定的权限。具体步骤如下:
原远程仓库创建者在GitHub上邀请团队成员:

获取邀请链接并发送给该成员:

被邀请成员登录GitHub,并将收到的邀请链接复制到浏览器地址栏进入,进行确认即可。
拉取远程仓库的最新版本
当远程仓库版本高于本地仓库版本时,是无法提交到远程库的,需要先pull拉取最新版本后再进行提交。
- 拉取远程仓库最新版本:
git pull 远程仓库地址 分支名称
(同样可使用别名)
解决冲突
在多人同时开发一个项目时,如果两个人修改了同一个文件的同一个地方,就会发生冲突。冲突需要人为解决。
推送前pull拉取远程库最新版本,查看冲突,进行修改并删除无用的地方再提交即可。

跨团队协作
- 某团队外成员C将该项目fork(相当于复制一份到自己的仓库)到自己的GitHub中;
- C将自己fork到的远程仓库克隆到本地仓库中进行修改;
- 对本地修改正常推送到自己GitHub上fork到的远程库;
- 点击
Pull requests
->New pull requests
->Create pull request
,添加相应描述即可创建。 - 团队内外成员可在
Write区
进行对话 - 团队成员核查完发现代码没有问题,就可以进行合并(Merge pull request)了。
SSH免登录
使用http地址进行推送时,每次都需要输入github用户名和密码(win10可以记录密码,因此不需要多次),而使用SSH(公钥与私钥结合)则可以免登录验证。步骤如下:
- 生成私钥:
ssh-keygen
- 私钥默认存储目录:
C:\Users\用户\\.ssh
- 公钥名称:
id_rsa.pub
- 私钥名称:
id_rsa
- 用户将公钥串进行复制,再到GitHub上,
Settings
->SSH and GPG keys
, 将公钥粘贴到Key位置进行添加即可。 - 然后再进行项目提交等操作,只需要复制SSH地址,取别名等方式与http方式相同。
git忽略清单
将不需要被git管理的文件名字添加到此文件中,在执行git命令的时候,git就会忽略这些文件.
- git忽略清单固定名称:
.gitignore
- 在该文件中,写上需要忽略的文件即可。
GitHub项目介绍
- 创建
readme.md
文件,在文件中写入相应的项目介绍,在github中即可看到其介绍。
常用命令手册下载
点击这里下载常用命令手册 Git Cheat Sheet