介绍windows下的git和GitHub使用。
一、注册gihub账号
github官网:https://github.com 自行创建即可。
登录,create repository新建仓库一个测试库readme,创建完成。
二、git的安装
git官方网站:https://git-scm.com/
选择Windows版本下载安装即可。
下载安装直接默认全部下一步即可
安装完成后,在任务栏可以看到已经存在这几个软件
三、生成 ssh key连接GitHub
3.1 生成密钥
打开git bash生成ssh key 密钥,加密方式为rsa。
ssh-keygen -t rsa
可以看到生成的密钥在C盘的用户,用户名下的.ssh名录。
3.2 复制公共密钥到git hub
公钥为id_rsa.pub的内容,以txt文本模式打开复制里面的内容。
登录github,在选项setting >> SSH and GPG key >> add new ssh添加刚才的公钥地址即可。title随便填写即可。
3.3 验证是否连接成功
输入以下命令,第一次需要确认输入yes即可。
ssh -T git@github.com
如图所示,出现 You’ve successfully authenticated, but GitHub does not provide shell access.则成功连接。
四、git命令上传文件至GitHub仓库
4.1 配置git参数的username,email
这是因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。
git config --global user.email "xxx@example.com"
git config --global user.name "Your Name"
自己设置自己的用户名和邮箱地址。不设置这一步,后面commit会报错如下:
Author identity unknown
*** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository
4.2 选择一个盘,创建自己的仓库目录
这里我以C盘为例,创建一个demo文件夹作为项目目录。
注:在我们进行任何的git操作之前,我们都得先切换到 Git 的仓库目录。
4.3 打开Git Bash,命令进入仓库目录
cd C:/git/demo
4.4 git init初始化仓库目录
进入任何一个新的仓库目录,第一步就是要初始化这个仓库目录。
git init
初始化后,默认进入仓库主分支,即master。
命令 git status 可查看仓库状态,初始化后在查看这时已经有了一个空仓库.
在文件夹中,这时也出现一个隐藏的文件夹.git,这个是一个仓库。
4.5 git add添加文件到本地仓库
在demo文件夹创建一个文件123.txt,作为测试文件。
然后在Git Bash 添加文件到本地仓库。
git add 123.txt
4.6 git commit提交文件到本地仓库
提交到本地库并备注为123 commit,此时变更仍在本地。
git commit -m "123 commit"
4.7 git remote add增加一个远程服务器的别名
为了后续的方便管理,可设置一个别名。
格式为git remote add 别名 git@github.com:GitHub用户名/GitHub仓库名.git
git remote add 123 git@github.com:theonlyu/test.git
theonlyu 改成自己的GitHub用户名
test 改成自己的GitHub仓库名
4.8 git push推送到github仓库
后面接刚才设置的别名就可以了。
git push 123 master
在GitHub的test仓库查看,也已经存在文件了。
推送完成,命令参考:
git add README.md #添加文件到本地仓库
git rm README.md #本地倒库内删除
git commit -m "first commit" #提交到本地库并备注,此时变更仍在本地。
git commit -a ##自动更新变化的文件,a可以理解为auto
git remote add xxx git@github.com:xxx/xxx.git #增加一个远程服务器的别名。
git remote rm xxx ##删除远程版本库的别名
git push -u remotename master #将本地文件提交到Github的remoname版本库中。此时才更新了本地变更到github服务
五、从GitHub仓库下载至本地
下载比较简单,在GitHub右边的code下可看到好几种下载方式,可以直接下载zip压缩文件,也可命令下载,一般选择ssh方式,可读写。
5.1 同样你需要进入一个目录
如直接下载到C盘的test文件夹,则先进入C盘test文件夹
cd /c/git/demo/test
5.2 git clone下载至本地
git clone git@github.com:xxxxxx/test.git
下载方式差别参考:
git clone git://github.com:xxxx/test.git ##以gitreadonly方式克隆到本地,只可以读
git clone git@github.com:xxx/test.git ##以SSH方式克隆到本地,可以读写
git clone https://github.com/xxx/test.git ##以https方式克隆到本地,可以读写
git fetch git@github.com:xxx/xxx.git ##获取到本地但不合并
git pull git@github.com:xxx/xxx.git ##获取并合并内容到本地
六、Git的分支管理
6.1 创建分支
例子:在本地demo目录创建一个branch.txt以分支提交。
git branch #显示当前分支是master
git branch new_bra #创建分支命名为new_bra
git checkout new_bra #切换到新分支
git add branch.txt
git commit -m "added branch.txt"
git push 123 new_bra ##把分支提交到远程服务器,只是把分支结构和内容提交到远程,并没有发生和主干的合并行为。
在github左上角可看到,new_bra分支已经上传成功,文件也存在了。主master却还没有新文件,因为没合并。
6.2 合并分支
如果new_bra分支成熟了,就是代码确认下来了,觉得有必要合并进master
git checkout master #切换到新主干
git merge new_bra ##把分支合并到主干
git branch #显示当前分支是master
git push 123 master #此时主干中也合并了new_bra的代码,123为别名
在github中成功合并,切换至master,新文件 branch.txt 也存在了。
6.3 其他命令
#更新远程分支列表
git remote update 别名 --prune
#查看所有分支
git branch -a
#删除远程分支
git push 别名 --delete 分支名
#删除本地分支
git branch -d 分支名