Github使用
Github使用
生成SSH key
SSh(安全外壳协议)GitHub 上,一般都是通过 SSH 来授权的,而且大多数 Git 服务器也会选择使用 SSH 公钥来进行授权,所以想要向 GitHub 提交代码,首先就得在 GitHub 上添加 SSH key配置。
1 | ssh-keygen -t rsa -C "xxx@xxx.com" |
生成公钥和私钥,无需账号和密码即可clone和push代码
Info Header
Welcome to Hexo!
操作git
git clone
克隆指定分支
1
git clone -b [branchname] [git@name.git]
改变克隆的文件夹名称
1
git clone [git@name.git] [foldername]
git --help
得到git-doc文件
1 | git --help <command> |
git init
初始一个Git仓库
先创建好仓库目录,并保存好文件
在我们进行任何的git操作之前,我们都得先切换到 Git 的仓库目录。
我们得先进入到(我们定义的)Git 仓库的最顶层文件目录下,然后从此目录中进入 Git Bash,这样之后的操作才能顺利进行
git status
查看仓库状态,若未创建,则返回not a git repository
git init
在命令行窗口的光标处,输入git init
命令,初始化 Git
仓库:
初始化之后仓库变成Git仓库
git add
将已有的文件添加到Git仓库,git add xxx.xxx
已经显示Initial commit
初始化提交了,同时已经没有Untracked files
提示了,这说明文件hit.txt
已经被添加到
Git 仓库
在这里,需要声明一点,那就是:git add
命令并没有把文件提交到
Git
仓库,而是把文件添加到了「临时缓冲区」,这个命令有效防止了我们错误提交的可能性。
git commit
在命令行窗口的光标处,输入git commit -m "text commit"
命令,将hit.txt
文件提交到
Git 仓库:
其中commit
表示提交,-m
表示提交信息,提交信息写在双引号""内。接下来,再输入git status
命令查看仓库状态
结果显示nothing to commit, working tree clean
,这表示已经没有内容可以提交了,即全部内容已经提交完毕。
git log
在命令行窗口的光标处,输入git log
命令,打印 Git
仓库提交日志:
git branch
在命令行窗口的光标处,输入git branch
命令,查看 Git
仓库的分支情况:
如上图所示,显示了仓库demo中的分支情况,现在仅有一个master
分支,其中master
分支前的*号表示“当前所在的分支”,例如*
master就意味着我们所在的位置为demo仓库的主分支。输入命令git branch a
,再输入命令git branch
,结果如下图所示:
git checkout
在命令行窗口的光标处,输入git checkout a
命令,切换到a
分支:
在这里,我们还有一个更简单的方法来查看当前的分支,即通过观察上图中用红色框圈起来的部分。此外,我们也可以在创建分支的同时,直接切换到新分支,命令为git checkout -b
,例如输入git checkout -b b
命令:
git merge
切换到master
分支,然后输入git merge a
命令,将a
分支合并到master
分支:
此外,在这里需要注意一点,那就是:在合并分支的时候,要考虑到两个分支是否有冲突,如果有冲突,则不能直接合并,需要先解决冲突;反之,则可以直接合并。
git branch -d & git branch -D
在命令行窗口的光标处,输入git branch -d a
命令,删除a
分支:
不过有的时候,通过git branch -d命令可以出现删除不了现象,例如分支a的代码没有合并到主分支等,这时如果我们一定要删除该分支,那么我们可以通过命令git branch -D进行强制删除。
git tag
在命令行窗口的光标处,输入git tag v1.0
命令,为当前分支添加标签:
如上图所示,我们为当前所在的a分支添加了一个v1.0标签。通过命令git tag
即可查看标签记录:
如上图所示,我们为当前所在的a分支添加了一个v1.0标签。通过命令git tag
即可查看标签记录:
如上图所示,显示了我们添加标签的记录。通过命令git checkout v1.0
即可切换到该标签下的代码状态:
git remote
返回当前remote仓库名
1 | git remote add [-t <branch>] [-m <master>] [-f] [--[no-]tags] [--mirror=(fetch|push)] <name> <url> |
git push
github仓库若还未建立可上传的分支,它的作用是将当前分支("main"分支)推送到远程仓库("origin"是远程仓库的名称),同时将远程分支与当前分支关联起来。这样,以后你就可以直接使用git push
来推送并拉取这个分支,而不需要每次都指定远程和分支。
1
git push --set-upstream origin main
specify the URL from the command-line or configure a remote repository using
1 | git remote add <name> <url> |
然后向远端push
1 | git push <name of repo> main(<branch of remote repo>) |
git pull
1 | git pull |
绑定Git与Github
Git报错处理
failed to push some refs
原因:远程库与本地库不一致,将远程库同步到本地库
解决办法:
1 | git pull --rebase <name of repo> main |
该命令的意思是把远程库中的更新合并到(pull=fetch+merge)本地库中,–-rebase的作用是取消掉本地库中刚刚的commit,并把他们接到更新后的版本库之中。
unable to access Failed to connect
有可能你的gitbub之前设置过代理,只需分别执行如下代码即可:
1 | git config --global --unset http.proxy |
若还没有解决,可以尝试如下解决方式
1 | git config --global url.git://github.com/.insteadOf https://github.com/ |
OpenSSL SSL_read: Connection was reset
产生原因:一般是这是因为服务器的SSL证书没有经过第三方机构的签署,所以才报错
解决方法:解除ssl验证后,再次git即可
1 | git config --global http.sslVerify "false" |