Github学习记录

157 阅读7分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第1天,点击查看活动详情。 Github学习记录:

一、会用到的操作

1.ls 或者 dir 查看文件内容 ls xxx(路径) 查看这段路径的文件 dir -h 显示隐藏文件夹

2.进文件夹 Windows PowerShell: cd c: 转文件(按Tab键补全文件名字) 如果是用cmd命令:进入各种盘:直接d: 不要加cd cd 转文件路径,如果打开一个gif啥的好像不用cd, 直接输入相关的文件名

3.git init 初始化文件

4.cls 清空所有的操作

5.cd ..返回上一个

6.mkdir xxx 创建文件

7.del xxx 删除文件

8.git status 查看状态

9.git branch 查看分支

10.git remote -v 查看分支情况

11.git remote remove 分支名 移除分支

二、(虚拟仓库)

1.创建虚拟仓库:

(https://www.csdn.net/).

2.进入自己创建的虚拟仓库

在这里插入图片描述

3.标题复制自己仓库的网址:

在这里插入图片描述

4.通过Window PowerShell or 直接创立一个新的文件

5.打开到所创立的文件的路径,git init 初始化

6.输入git remote add xxx(某个文件名,一般叫origin) + GitHub虚拟仓库的网址

(如果是第一次使用GitHub则需要如下操作: git config --global user.name "Fly-Pluche" (GitHub文件名)
git config --global user.email "527212878@qq.com" (GitHub创建时候所用的邮箱)

7.使用echo(回声):

echo “# learning-git” >> README.md(创立一个“README.md”,并且将# learning-git这段话存到其中)

8.git add ––all(将所有东东提交上虚拟仓库)

再输入 git status 查看状态 如果绿了,就代表success

9.git commit -m”xxx”(创建备注)

在这里插入图片描述

10.git push xxx master(这里的xxx与上面输入网址的那段操作时,所创立的文件名字一样such as :origin)

注意,其中的master是分支名字,也可以改。 正确输入后,回车,然后就是等待上传,转转转转。 If 成功,既出现success else 失败。

11.如果看不懂是否创建成功的话,就进入GitHub 中查看自己创立的虚拟仓库是否成功。

更新远程仓库

cd到你想要的某个文件夹

在这里插入图片描述

clone

把要更新的文件夹拉取下来 git clone github.com/Have/U2(仓库地…

cd进仓库文件夹

cd U2

建立远程连接

git remote add origin github.com/Have/U2(仓库地…

pull拉取

git pull origin main(branch分支名)

把你改动的东西拉到你clone的仓库里面

把你本地仓库添加到缓存区

git add --all

添加备注

git commit -m"heihei"

上传

git push origin main(分支名)

创建分支

法一: git branch +name 创建一个叫name的分支 创建好了之后,其实并没有指向这个新分支,你需要使用 git checkout name 切换到这个分支

法二: git checkout -b name 创建分支并指向

修改commit

来自:https://github.com/uolcano/blog/issues/12

1.修改最近一次的commit

git commit --amend

然后会进入一个文本编辑器界面,修改commit的描述内容,即可完成操作。 退出amend 先按一下Esc退出编辑,然后连续按两次ZZ(大写的)

修改提交的文件

git add <filename> # 或者 git rm
git commit --amend # 将缓存区的内容做为最近一次提交

2.修改任意提交历史位置的commit

可以通过变基命令,修改最近一次提交以前的某次提交。不过修改的提交到当前提交之间的所有提交的hash值都会改变。 变基操作需要非常小心,一定要多用git status命令来查看你是否还处于变基操作,可能某次误操作的会对后面的提交历史造成很大影响。

首先查看提交日志,以便变基后,确认提交历史的修改

git log 变基操作。 可以用commit~n或commit^^这种形式替代:前者表示当前提交到n次以前的提交,后者^符号越多表示的范围越大,commit可以是HEAD或者某次提交的hash值;-i参数表示进入交互模式。

git rebase -i 以上变基命令会进入文本编辑器,其中每一行就是某次提交,把pick修改为edit,保存退出该文本编辑器。

**注意:**变基命令打开的文本编辑器中的commit顺序跟git log查看的顺序是相反的,也就是最近的提交在下面,老旧的提交在上面

**注意:**变基命令其实可以同时对多个提交进行修改,只需要修改将对应行前的pick都修改为edit,保存退出后会根据你修改的数目多次打开修改某次commit的文本编辑器界面。但是这个范围内的最终祖先commit不能修改,也就是如果有5行commit信息,你只能修改下面4行的,这不仅限于commit修改,重排、删除以及合并都如此。

git commit --amend 接下来修改提交描述内容或者文件内容,跟最近一次的commit的操作相同,不赘述。

然后完成变基操作

git rebase --continue 有时候会完成变基失败,需要git add --all才能解决,一般git会给出提示。

再次查看提交日志,对比变基前后的修改,可以看到的内的所有提交的hash值都被修改了

git log 如果过了一段时间后,你发现这次历史修改有误,想退回去怎么办?请往下继续阅读

3.重排或删除某些提交

变基命令非常强大,还可以将提交历史重新手动排序或者删除某次提交。这为某些误操作,导致不希望公开信息的提交,提供了补救措施

git rebase -i 如前面描述,这会进入文本编辑器,对某行提交进行排序或者删除,保存退出。可以是多行修改。

后续操作同上。

4.合并多次提交

非关键性的提交太多会让版本历史很难看、冗余,所以合并多次提交也是挺有必要的。同样是使用以上的变基命令,不同的是变基命令打开的文本编辑器里的内容的修改。

将pick修改为squash,可以是多行修改,然后保存退出。这个操作会将标记为squash的所有提交,都合并到最近的一个祖先提交上。

**注意:**不能对的第一行commit进行修改,至少保证第一行是接受合并的祖先提交。

后续操作同上。

5.分离某次提交

变基命令还能分离提交,这里不描述,详情查看后面的参考链接

6.终极手段

git还提供了修改版本历史的“大杀器”——filter-branch,可以对整个版本历史中的每次提交进行修改,可用于删除误操作提交的密码等敏感信息。

删除所有提交中的某个文件

git filter-branch --treefilter 'rm -f password.txt' HEAD 将新建的主目录作为所有提交的根目录

git filter-branch --subdirectory-filter trunk HEAD

Fork后的相关操作

前提:fork了大佬的仓库到自己仓库 然后大佬更新了仓库,我们也需要更新我们本地fork的仓库

  1. 打开cmd ,cd到本地的仓库文件下

  2. git remote -v(查看本地情况)

在这里插入图片描述

我们发现,还是origin,也就是之前我们pull下来时名字。

  1. 建立连接

    git remote add corona(可以自己改名字) git@github.com:corwork.git

  2. git remote -v 在这里插入图片描述

  3. 将corona的主分支pull下来

    git pull corona master

版本回退

得到过去信息 git reflog 在这里插入图片描述 git reset --hard [id you wanna roll back] git reset -mixed [id]

在这里插入图片描述

www.jianshu.com/p/c2ec5f06c…

在这里插入图片描述

可能会遇到的bug

在这里插入图片描述 解决:blog.csdn.net/nakiri_aris…

配置SSH

自行搜索 GitHub 配置ssh key

一个连续git命令的网站 learngitbranching.js.org/?demo=&loca…