最近在写一个archlinux的自动安装脚本,由于需要在不同电脑上切换非常麻烦,所以使用github做版本管理,网上查了很多资料,做一下笔记捋一下git与github的简单使用流程:
测试平台:Windows7 + ArchLinux
首先要理解的是:
每一个文件夹都可以当成是一个本地仓库(只要包含有 .git)
每一个本地仓库都有一个 .git 包含该仓库的基本设置
1. 安装 git
直接在git官网下载对应安装包即可

下载完之后按提示安装,一般默认设置就够用了(简单的上传同步功能)。
2. 生成公钥
Git 软件安装完之后,找到并双击打开软件 Git Bash
,在打开的命令行中输入命令生成密钥:
注意: 记得把"xxxx@xxx.com"替换成你将用来注册github账号的邮箱地址!
注意: 记得把"xxxx@xxx.com"替换成你将用来注册github账号的邮箱地址!
注意: 记得把"xxxx@xxx.com"替换成你将用来注册github账号的邮箱地址!
ssh-keygen -t rsa -C "xxxx@xxx.com"
一路按回车即可!
生成之后按提示路径找到id_rsa.pub
这个文件,即是我们要添加的公钥文件。
而id_rsa
文件则不用理会,它是根据本地电脑生成的私钥,用来配对github上的公钥。

接下来找到公钥路径,打开 id_rsa.pub
文件,并全选文件里面的内容复制出来,以做备用。

3. 添加公钥到 Github
首先当然是要去github官网注册一个账号啦~

按提示注册完之后,登录账号按提示添加公钥:
Settings -> SSH and GPG keys -> SSH keys -> New SSH key

进入
SSH keys
添加页面后,按提示将复制出来的公钥内容粘贴到Key栏,最后点击添加按钮,输入登录密码确认添加,到此个人电脑与 Github 的公钥添加已完成。


最后验证是否添加成功,输入命令:
ssh -T git@github.com
回车后按提示输入 yes
回车即可。

4. 创建Github远程仓库


根据自己的需求创建相应的远程仓库:
eg: archlinuxScript

复制远程仓库地址备用

5. 配置本地git
打开Git Bash,随意创建一文件夹(eg: d:\github),进入该文件夹并输入命令设置github 账号名和邮箱地址:
"githubname":注册的Github账号名称
"xxxx@xxx.com":注册Github用的邮箱地址
注意:记得替换 "githubname" 与 "xxxx@xxx.com" !
注意:记得替换 "githubname" 与 "xxxx@xxx.com" !
注意:记得替换 "githubname" 与 "xxxx@xxx.com" !
git config --global user.name "githubname"
git config --global user.email "xxxx@xxx.com"

6. 推送项目到github
推送之前先看一下远程仓库的内容,只有个README.md
文件:

推送文件到 步骤4 中所创建的远程仓库archlinuxScript
完整流程:
a. 首先初始化本地仓库
git init
b. 然后添加远程仓库,并查看远程仓库是否添加成功
# git remote add origin git@github.com:yourName/yourRepo.git
git remote add origin git@github.com:skillf-qf/archlinuxScript.git
git remote -v
c. 拉取远程仓库到本地仓库,目的让本地仓库和远程仓库保持一致
git pull origin main
d. 进入本地仓库(创建的文件夹 d:\github) 并添加一个文件 test.c
,模拟修改本地仓库
touch test.c

e. 将文件添加到暂存区:
文件多的话,可以使用 git add . 表示当前目录下的所有文件
git add test.c
f. 添加提交说明:
提交说明类似于代码注释,方便我们记忆项目做了哪些修改。
git commit -m "update 20210126"
g. 推送之前需要统一本地仓库和远程仓库的分支名,不然会推送出错
先看github 远程仓库的默认分支名: main

在看本地仓库的分支名
git branch -a

很明显不一致,原因是以前的 Git 和 Github 的默认分支都叫 master,后来 Github上改为了main,而 Git 没有做修改,此时我们需要手动修改分支名:
git branch -m master main
i. 推送本地仓库到远程仓库:
git push origin main
注意:
origin
是关联的远程仓库的标签,可以使用 git remote -v
查看当前本地已关联的远程仓库,
main
是 Github 上的默认分支名。


git本地仓库推送之后,github远程仓库多了个test.c
文件

谢谢阅读!
【完】
网友评论