在本地与GitHub之间建立SSH链接
(2022.01.09 Sun)
1 本地生成秘钥
$ cd ~/.ssh # 进入隐藏的ssh文件夹
$ ssh-keygen -t rsa # 生成钥匙
Enter file in which to save the key (/Users/jeffcheung/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/jeffcheung/.ssh/id_rsa.
Your public key has been saved in /Users/jeffcheung/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256: xxxxxxx
The key's randomart image is:
+---[RSA 3072]----+
| o ...*o|
| . o o o =|
| .oo . o .. . |
| ++ * * .. |
| ooo S o . |
| o oo. . . . |
| o +o+ o . |
| ..=.E .... =|
| .oo+o. .o.=o|
+----[SHA256]-----+
这三个问题,可根据自身需求修改,亦可直接跳过,连点三次return
,passphrase不输入则每次执行git pull
操作时不会使用密码。
2 将本地秘钥复制到GitHub的设定中
$ cd ~/.ssh
$ cat id_rsa.pub
ssh-rsa AAAAB3xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
选择id_rsa.pub
的内容并复制。在github的settings
页面中找到SSH and GPG Keys
,点击New SSH key
,并将内容粘贴于其中和命名。此时,本地和GitHub建立了SSH连接。可使用git clone git@....
指令下载代码到本地。
本地项目/文件夹添加为GitHub项目
1 在本地创建项目文件夹,如name_a
2 进入文件夹内
$ cd name_a
3 执行Git命令将该文件夹变成Git可以管理的仓库
$ git init
4 将文件夹内的所有文件添加到仓库中,也可以按需指定特定文件添加到仓库
$ git add .
$ git add file_name
5 提交内容,记录本次commit的注释和说明
$ git commit -m 'this is a comment'
6 在GitHub上建立一个repo,名字与本地的名字相同,注意不要默认建立README.md
文件
7 关联本地与GitHub仓库
$ git remote add origin [email protected]:/name_a.git
8 推送本地文件到GitHub仓库
$ git push -u origin master
删除一个分支
(2022.11.18 Fri)
在remote和local都有不同的分支,比如我们想要删除remote和local的分支fa
,同时主分支为main
。
首先需要checkout main
分支中,也就是在即将删除的branch之外执行删除操作。
$ git checkout main
$ git branch
* main
fa
之后删除local的分支fa
,格式如
git branch -d
或
git branch -delete
or if you want to force the branch to be deleted, even if it hasn't been pushed or merged yet
git branch -D
$ git branch -d fa
如果需要删除remote上的对应branch,使用如下命令,注意delete
前面是双横线--
git push
--delete
或在本地branch fa
删除之后,在push到remote,注意branch_name
前面有冒号:
git push
:
比如
$ git push origin --delete fa
$ git push origin :fa
当然可能发生一种情况是即将删除的remote branch已经被别人删除,会返回如下错误
error: unable to push to unqualified destination: remoteBranchName The destination refspec neither matches an existing ref on the remote nor begins with refs/, and we are unable to guess a prefix based on the source ref. error: failed to push some refs to 'git@repository_name'
此时,只需要用如下命令同步即可
$ git fetch -p
之后remote和local都被删除。