前言
原创链接: git入门使用
https://blog.csdn.net/weixin_43850253/article/details/113616043
下载
首次安装配置
ssh 配置多个key 这部分有一个好教程: Git配置多个SSH-Key
设置全局的用户和密码(如果要设置某个项目的话可以初始化后再config,局部会覆盖掉全局,用法和全局的类似,只是去掉 --global参数而已):
git config --global user.name "这里换上你的用户名"
git config --global user.email "这里换上你的邮箱"
另外,个人实测还是ssh比较稳定,推送到github或者gitee。下面就说一下怎么配置ssh。
终端可以使用这个:
ssh-keygen -t rsa -C '这里换上你申请github的邮箱' -f C:/Users/【用户名】/.ssh/github_id_rsa
git bash 工具(鼠标右键可以看到有git Bash选项,一般默认安装git后都会有), git bash工具可以跑一下linux命令,并且像这里的路径(~代表用户目录,即等同于windows下的C:/Users/【用户名】):
ssh-keygen -t rsa -C '这里换上你申请github的邮箱' -f ~/.ssh/github_id_rsa
运行后这两个直接回车即可:
这里要新建一个config
这里我还有个gitee_id_rsa和id_rsa大家不管,感兴趣的可以看文章最后两部分:gitee和vscode。
config用编辑器打开(比如vscode, sublime, 记事本等), 向config添加下面配置
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile C:/Users/Administrator/.ssh/github_id_rsa
然后就去github那里添加ssh公钥
添加标题和公钥即可。标题只要你看的清楚就行,公钥就是github_id_rsa.pub中的字符串,拷贝进去就行。
然后在终端中(这里路径无所谓)输入如下命令,若为下图则表示配置成功:
ssh -T git@github.com
本地新建项目
如果没有下面文件, 需要
git init
这个时候目录下会有个.git文件, 如果被隐藏了需要设置一下:
从远程仓库(非空) 下载
git clone 【仓库地址】
从远程仓库同步到本地
这个步骤是已经建立了关联的情况下才可以
git pull 【远程仓库名字】 【远程分支名字,默认是master】
如果遇到冲突,会提示错误,然后需要我们解决冲突。vscode的话会有如下提示:(JetBraint的软件有左中右三个对比框,我觉得还挺好用) 不过vscode的看起来也挺好用的,有冲突的文件会有C的蓝色的标识。冲突的地方会高亮:
由图我们可以选择 采用当前更改, 则是保留本地的版本, 如果选择采用传入的更改,则是 保留远程分支的更改,并将本地改为远程分支一样的版本。
把本地的仓库推到远端
我们在本地写完一个功能后想推到远端仓库给大家共享
添加文件追踪:
git add .
提交到本地仓库, 保存修改到本地仓库
git commit -m "【提示信息】"
提交到远程仓库
git push 【远程仓库名】 【远程仓库分支名,默认是master】
有时候可能要更详细些, 例如本地分支和远程分支都不是默认的时候,
比如本地分支master, 远程分支main,push操作应该为如下:
git push origin master:main
远程仓库
实际上,一个本地仓库可以对应多个远程仓库.如下图我们发现一个关联了gitee(远程仓库), 一个关联了github(远程仓库)
输入一下指令即可查看分支:
git remote -v
添加一个远程仓库
git remote add 【远程仓库名】 【远程仓库地址】
删除一个远程仓库
git remote remove 【远程仓库名】
例子:
一个新建的项目, 发现什么远程仓库都没有:
我们给它添加一个名为warehouse的仓库(名字清晰即可,很多人呢命名为origin, 而我比较喜欢github仓库就叫做github, gitee仓库就叫做gitee)。
我们发现这时候有了一个远程仓库,那么以后推送到远端的操作在(add和commit后)就只要
(分支名默认是master, 如果没有新建分支的话)
git push warehouse master
而我们发现添加有误或者这个warehouse的远程仓库不用了,我们可以:
这时候就删除掉了。
撤销提交
如果我们发现已经写错了,但是已经提交到本地仓库。这时候这部分内容就可以帮助到你了
撤销一个commit
git reset --soft HEAD^
或
git reset --soft HEAD~1
撤销两个commit
git reset --soft HEAD~2
然后如果已经push,则(注意,这是强制推送,发送前请确保本地仓库是已经想要的了,因为这部操作会强制覆盖掉远程仓库, 该操作有时也用来强制远程仓库更改为本地仓库的版本, 一般不建议用这个,慎重慎重!!!)
git push origin master –f
忽略文件或文件夹
在项目根目录下,新建一个文件 .gitignore
比如我们要忽略 a文件夹下的所有文件,我们需要在 .gitignore 中添加
/a/
如果忽略 后缀为 .txt的文件,则在 .gitignore 文件中添加
*.txt
如果忽略 后缀为 .txt的文件,但readme.txt需要追踪,则在 .gitignore 文件中添加
*.txt
!readme.txt
更多用法请查找网上其他资料,本文会逐渐补充…
gitee
终端可以使用这个生成gitee_id_rsa和gitee_id_rsa.pub文件:
ssh-keygen -t rsa -C '这里换上你申请gitee的邮箱' -f C:/Users/【用户名】/.ssh/gitee_id_rsa
在config文件中添加:
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile C:/Users/Administrator/.ssh/gitee_id_rsa
然后再gitee用户界面添加ssh公钥即可使用。
公钥那一栏就是把gitee_id_rsa.pub文件的一行字符串拷贝进去即可(注意,是gitee_id_rsa.pub文件中的而不是gitee_id_rsa文件)。
然后在终端中(这里路径无所谓)输入如下命令,若为下图则表示配置成功(截图来自gitee官方文档):
ssh -T git@gitee.com
使用vscode为工具远程连接(ssh)
这个工具的好处就是可以使用vscode写代码,而不用在终端那里敲新建文件,用vim进行打代码了。
需要生成id_rsa.pub文件, 在git Bash工具中输入
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
然后再config文件中加入
Host 【主机名字,自己清楚就好】
HostName 【远程主机ip】
Port 【目标端口,默认22】
User 【用户,默认root】
IdentityFile C:/Users/Administrator/.ssh/id_rsa
然后vscode需要下载插件:
把 id_rsa.pub 的字符串追加到远程主机上的 authorized_keys 文件中 (注意不要覆盖掉其他的公钥)
如果没有的话,就新建,注意检查一下:
vim /etc/ssh/sshd_config
有一行要注意(默认被注释掉,要取消误差):
PubkeyAuthentication yes
重启一下:
systemctl restart sshd.service
这个时候我们就可以用vscode链接远程仓库了。首次打开某个目录可以这么操作:
这个插件也会记录之前打开过的文件,以实现快捷进入:
结语
Git是一个强大的版本控制工具,它有利于团队协作开发和代码版本管理。关于分支的部分这里就不再介绍了,大家可以去网上查找相关资料。