一、在Windows上安装Git
第二种是先安装一个包管理器,推荐Scoop,
1.安装Scoop
打开PowerShell
启用 PowerShell 执行本地脚本
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
安装 Scoop
irm get.scoop.sh | iex
然后在PowerShell中通过以下命令安装Git:
scoop install git
输入
scoop --version
来验证安装是否成功

2.安装git
scoop install git
安装完成后,在PowerShell下运行命令
git -v
显示Git版本,可看到如下输出:

3.升级git
scoop update git
4.配置git
安装好Git后,还需要最后一步设置,在命令行输入:
git config --global user.name "Young"
git config --global user.email "qiyy1208@163.com"
因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。你也许会担心,如果有人故意冒充别人怎么办?这个不必担心,首先我们相信大家都是善良无知的群众,其次,真的有冒充的也是有办法可查的。
注意git config
命令的--global
参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
二、创建版本库
什么是版本库呢?版本库又名仓库(Repository),你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以"还原"。
所以,创建一个版本库非常简单,首先,选择一个合适的地方,
1.创建一个空目录:
$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit
pwd
命令用于显示当前目录。在我的Mac上,这个仓库位于/Users/michael/learngit
。
如果你使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。
2.把这个目录变成Git可以管理的仓库:
git init

3.把文件添加到版本库
编写一个readme.txt
文件,内容如下:
Git is a version control system.
Git is free software.
一定要放到learngit
目录下(子目录也行),因为这是一个Git仓库,放到其他地方Git再厉害也找不到这个文件。
第一步,用命令git add
告诉Git,把文件添加到仓库:
git add readme.txt

4.把文件提交到仓库:
git commit -m "wrote a readme file"

简单解释一下
git commit命令,
-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。
嫌麻烦不想输入-m "xxx"行不行?确实有办法可以这么干,但是强烈不建议你这么干,因为输入说明对自己对别人阅读都很重要。实在不想输入说明的童鞋请自行Google,我不告诉你这个参数。
git commit命令执行成功后会告诉你,1 file changed:1个文件被改动(我们新添加的readme.txt文件);2 insertions:插入了两行内容(readme.txt有两行内容)。
为什么Git添加文件需要add
,commit
一共两步呢?因为commit
可以一次提交很多文件,所以你可以多次add
不同的文件,比如:
$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."
小结

三、时光机穿梭
3.1.版本退回与返回最新版本
1.版本退回
git log
命令查看历史提交记录
commit id
(版本号)
其次还有作者信息
修改日期

git reset --hard HEAD^
--hard
会回退到上个版本的已提交状态,而
--soft
会回退到上个版本的未提交状态,
--mixed
会回退到上个版本已添加但未提交的状态。现在,先放心使用--hard
。
用HEAD
表示当前版本,也就是最新的提交1094adb...
(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,当然往上100个版本写100个^
比较容易数不过来,所以写成HEAD~100
2.返回最新版本
如果上面的命令行窗口还没有被关掉,你就可以顺着往上找啊找啊,找到那个append GPL
的commit id
是1094adb...
于是就可以指定回到未来的某个版本:
git reset --hard 1094a
版本号没必要写全,前几位就可以了,Git会自动去找。
git reflog
用来记录你的每一次命令:如果上面命令行窗口关闭了,
通过这样也可以找到之前最新版本的commit id
git reflog
小结

3.2工作区和暂存区


分支和HEAD
的概念我们以后再讲。
前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的:
第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
实践
先对readme.txt
做个修改,比如加上一行内容:
然后,在工作区新增一个LICENSE文本文件(内容随便写)。

先用
查git状态
git status
查看一下状态

Git非常清楚地告诉我们,readme.txt被修改了,而LICENSE还从来没有被添加过,所以它的状态是Untracked。
现在,使用两次命令git add,把readme.txt和LICENSE都添加后,用git status再查看一下:

一旦提交后,如果你又没有对工作区做任何修改,那么工作区就是"干净"的:


小结

四、远程仓库
4.1添加远程仓库
git remote add origin git@github.com:huanshu-he/learngit.git
添加后,远程库的名字就是origin
,这是Git默认的叫法
huanshu-he是z自己的GitHub账户名
下一步,就可以
把本地库的所有内容推送到远程库上:
git push -u origin master
把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
由于远程库是空的,我们第一次推送master分支时,加上了
-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
推送成功后
把本地master
分支的最新修改推送至GitHub
从现在起,只要本地作了提交,就可以通过命令:
git push origin master
把本地master
分支的最新修改推送至GitHub,现在,你就拥有了真正的分布式版本库!

这个错误提示说明 Git 尝试通过 SSH 连接连接 GitHub 时,由于缺少有效的 SSH 密钥授权而被拒绝访问
生成 SSH 密钥(邮箱替换为你 GitHub 绑定的邮箱)
ssh-keygen -t ed25519 -C "huanshu120@gmail.com"

- 执行后会提示输入保存路径,直接按回车(默认路径
~/.ssh/id_ed25519
) - 提示输入密码时,可直接按回车(空密码,方便后续操作)
查看公钥内容
cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH4wCiSjWA+qbhdJSXE3Izvj8Pr7aByJx22mqraHOCFZ huanshu120@gmail.com
验证 SSH 连接
ssh -T git@github.com

git push -u origin master

推送成功!
4.2从远程库克隆
最好的方式是先创建远程库,然后,从远程库克隆。
首先,登陆GitHub,创建一个新的仓库,名字叫gitskills
:
我们勾选Initialize this repository with a README
,这样GitHub会自动为我们创建一个README.md
文件。创建完毕后,可以看到README.md
文件:

git clone git@github.com:huanshu-he/gitskills.git

然后进入gitskills
目录看看,已经有README.md
文件了:
小结

五、分支管理
5.1创建与合并分支
$ git checkout -b dev
Switched to a new branch 'dev'
小结

七、使用github(将开源项目拉到本地)
参与开源项目的常规操作流程
1.登录自己的github账号,
2..访问项目主页,以 Bootstrap 为例j就是进入 Bootstrap 项目在 GitHub 上的主页 https://github.com/twbs/bootstrap
。
Fork项目到自己仓库
就在自己的账号下克隆了一个bootstrap仓库,
然后再点击create fork此时别人的项目就跑到自己的仓库了。
Fork 项目:点击页面上的 "Fork" 按钮,GitHub 会在你的账号下创建一个该项目仓库的副本。这个副本是独立于原项目仓库的,你可以在上面自由地进行修改、试验等操作 ,而不会影响到原项目。

克隆仓库到本地:
在你账号下的 Fork 仓库页面,点击绿色的 "Code" 按钮,复制仓库的克隆地址(可以选择 HTTPS 或者 SSH 协议的地址 ,示例中使用的是 SSH 地址)。然后打开本地的命令行工具(如 Git Bash ,在 Windows 下),通过
git clone
命令将仓库克隆到本地,比如:

git clone git@github.com:huanshu-he/bootstrap.git

