Git命令, since 2022-01-09

在本地与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都被删除。

你可能感兴趣的:(Git命令, since 2022-01-09)