1、创建SSH Key
由于本地的git仓库与GitHub网站仓库之间的传输是通过SSH加密的。
在用户主目录/home/gzy/.ssh是否存在,如果存在,查看是否存在id_rsa与id_rsa.pub两个文件是否存在。如果存在,可以调到下一步,如果不存在,打开终端,输入自己的邮箱地址,创建SSH Key.
ssh-keygen -t rsa -C "xxxxx@qq.com"
id_rsa是私钥,不能泄露,id_rsa.pub是公钥,可以告诉其他人。
2、在GitHub端设置SSH Key
登录GitHub,点击右上角头像,Settings->Personal settings->SSH and GPG keys.在SSH keys标签右方点击New SSH Key.弹出两个文本框。其中的Title,可以随意命名。另一个Key文本框,需要输入刚刚生成的id_rsa.pub文件中的内容,粘贴后点击Add SSH Key,即可生成SSH Key.
3、上传项目
可以将git分为四部分:一部分是自己的本机文件,一部分是缓存区,一个是本地仓库,一个是服务器仓库。当用户在本机修改文件后,就应该使用git add xx指令将修改保存到缓存区,然后再用git commit yy指令将推送从缓存区修改到本地仓库中,最后使用git push将本地仓库中的修改推送到服务器仓库中。
(1) 准备上传
安装git: sudo apt-get install git
安装完毕后,终端进入需要上传项目所在的文件夹。使用git的初始化命令:git init
这个命令可以把当前目录变成git可以管理的仓库
(2) 添加需要上传的文件
git add file #file是想要添加的文件
git add ./ #将整个文件夹内容都要添加进去
(3) 检查当前git状态
git status
可以查看当前的分支以及添加文件的情况
(4) commit推送
将缓存区的修改提交到本地仓库
git commit -m “update readme files”
如果输入commit指令后,出现错误,在进行git add ./操作的路径中,实际上已经生成一个隐藏的.git文件夹。在该路径下输入指令cd ./.git便进入.git文件夹,使用gedit打开文件config,在文件末尾加入内容:
[user]
email = xxxxx@qq.com
name = xxxx
(5) 添加文件到远程库
首先应该添加一个远程仓库,命名为origin,这样随后才可以添加文件到远程库中。指令如下:
git remote add origin git@github.com:upcAutoLang/Framework-for-NACIT2017.git
如果此时出现错误:fatal:remote origin already exists.这时候说明远程仓库已经存在。这时候需要先删除origin仓库,然后再重新添加该远程仓库。指令如下:
git remote rm origin
git remote add origin git@github.com:upcAutoLang/Framework-for-NACIT2017.git
笔者使用push指令进行上传。如果该仓库是第一次进行push,则指令如下:
git push origin master
但笔者之间已经传输过,此处只是更新,所以只需输入:git push
git push --set-upstream origin master
(6) git 命令
git branch 显示所有本地分支
rm -rf .git 删除仓库文件夹下隐藏的.git文件夹即可
git status 查询仓库状态
git diff 文件名 比较文件差异(请在git add之前使用):
git log 查看仓库历史记录(详细)
git log --pretty=online或git log --online 查看仓库历史记录(单行)
git reflog 查看所有版本的commit ID:
git checkout -- 文件名 撤销工作区的修改
git reset HEAD 文件名 撤销暂存区的修改
git reset --hard 该版本ID 回退到历史版本
git reset --hard HEAD^ 回退到上个版本,上上版本是HEAD^^,也可用HEAD~2表示
git tag 标签名 为当前版本打标签
git tag 标签名 该版本ID 为历史版本打标签
git tag -a 标签名 -m “标签说明” 指定标签说明
git tag 查看所有标签
git show 标签名 查看某一标签
git tag -d 标签名 删除某一标签
(7) 在git中删除指定的文件和目录
拉取远程的Repo到本地(如果已经在本地,可以略过)
git clone xxxxx
在本地仓库删除文件
git rm 我的文件
在本地仓库删除文件夹
git rm -r 我的文件夹/
此处-r表示递归所有子目录,如果你要删除的,是空的文件夹,此处可以不用带上-r.
提交代码
git commit -m “我的修改”
推送到远程仓库(比如GitHub)
git push origin xxxxx