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