不会用Git的开发人员,绝对没有真正的写过代码
Git基本概念
Git 是一个分布式版本控制软件.用来再软件开发时,管理代码的版本
第一次使用Git
第一次使用Git时候,需要配置好自己的用户名和邮箱,这是在每一次提交的时候都要使用的信息.
# github或者gitlab用到的用户名和邮箱
$ git config --global user.name "John Doe"
$ git config --global user.email "johndoe@example.com"
# 查看基本配置
git config --list
ssh连接和https连接.
ssh 连接和https连接的区别.
使用https连接,每次都要输入用户名和密码,而且那个用户名和密码好像有点BUG,都得输入两次才能对.很离谱
如何配置ssh连接github 账户
# 生成秘钥
ssh-keygen -t rsa -C "johndoe@example.com" # ~/.ssh目录下面会有id_rsa和id_rsa.pub两个文件
cat id_rsa.pub # 把这个里面的内容复制
复制上面的内容之后,打开你的github,进入配置页:Settings – SSH and GPG keys,添加本地生成的ssh秘钥,选择New SSH key(这里已经配置了一个key,如果是未配置秘钥的用户,这里是空的),把复制的内容贴过来,然后保存:
#测试是否配置成功sfd
用ssh链接git:ssh -T git@github.com
Git的常规操作
# 克隆项目下来
git clone git@github.com:zhongqiangwu960812/AI-RecommenderSystem.git
# 如果新改了某个文件,需要同步到远程
# 如果是新增了某个文件,可以直接
git add 文件名
git status # 可以查看修改情况
git commit -m '新加文件' # 提交说明
git push # 提交
# 这样,就搞定了
# 如果是删除了某个或者修改了很多地方等,可以
git add .
git commit -m 'update many'
git push
# 如果是从远程仓库改了文件,需要先拉到本地,让本地和远程保持一致之后再push
git pull
分支
分支的概念
分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN。
如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了Git又学会了SVN!
分支的基本操作.
# 创建分支
git branch name //创建名为name的分支
#切换分支
git checkout name //这个是什么意思? 切换名字到为name的分支
# 上面两行可以改成一行
git checkout -b name
#切换分支还可以用,建议用这个,上面那个容易引起误解
git switch -c dev // 创建名为dev的分支,并切换到该分支
git switch dev //切换到已有的dev分支.
# 修改完了代码,需要push到远程分支上,可以下面操作
git push --set-upstream origin 分支名
# 查看分支
git branch # 本地分支
git branch -r # 远程分支
git brance -a # 查看所有分支
#合并分支
git merge dev //比如说当前所在分支为main,然后我使用这个命令,就会将dev和main合并到一起.
#删除分支
git branch -d name #删除分支,这个一般在当前分支开发完成,merge之后使用..
注意:在新建的分支上面做了更改之后,需要commit之后,才能看到两个的区别,不然,就会发现,两个分支的东西是一样的了.
也就是下面这个问题.
[图片上传失败...(image-a3f25a-1628507521785)]
操作远程库的基本流程
假设什么也没有,那就从第1步开始最后.
假设已经有了本地库,那就从第二步开始.(不过好像还是得新建一个.因为不能 和别的乱七八糟的库关联啊...)
1. 先在Github新建一个仓库
2. clone 下来之后,创建两者之间的关联.
git remote add origin git@github.com:username/responame.git //这里要使用ssh地址,而不是https地址了.因为你使用了ssh连接.
如果发现关联错误,需要解除远程关联
3. push到远程仓库
在本地的分支进行了提交之后,就可以push到远程仓库了.
git push -u origin main //第一次push
git push origin main //后面的push
附:解除和远程库的关联
如果添加的时候地址写错了,或者就是想删除远程库,可以用git remote rm <name>命令。使用前,建议先用git remote -v查看远程库信息:
$ git remote -v
origin git@github.com:michaelliao/learn-git.git (fetch)
origin git@github.com:michaelliao/learn-git.git (push)
然后,根据名字删除,比如删除origin:
$ git remote rm origin
此处的“删除”其实是解除了本地和远程的绑定关系
,并不是物理上删除了远程库
。远程库本身并没有任何改动。要真正删除远程库,需要登录到GitHub,在后台页面找到删除按钮再删除。
obsidian 的Git插件
用处
obsidian 的Git插件,可以让用户使用Github来对自己的obsidian笔记库进行备份.
理解
obsidian 的git插件,实际上只是对系统的GIT做了一些调用而已.真正起作用的是系统的Git软件
.
因而,在使用obsidian-git插件之前,你需要先对vault做一些设置.比如把它初始化成Git 仓库,添加远程仓库等等..
然后就可以使用obsidian的命令,来对其进行pull push等一系列的git操作了.