在开启代理的情况下使用git
测试ubuntu系统开通vpn服务的情况下使用git
git使用过程中的问题
1. 连接问题
开代理后无法连接
解决方案:在~/.ssh/config中配置vpn的信息如下:
# 1. If don't use vpn, delete the following 3 lines;
# 2. Here, 22 is the port your VPN set.
Host github.com
User git
ProxyCommand nc -v -x 127.0.0.1:22 %h %p
2. 秘钥问题
连接成功,但授权有问题
解决方案:生成ssh密钥后添加到客户端,添加到github
https://docs.github.com/zh/authentication/troubleshooting-ssh/error-permission-denied-publickey
https://docs.github.com/zh/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent
https://docs.github.com/zh/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account
git使用技巧
echo "# Test" >> README.mecho "# Test" >> README.md
这行命令会在README.md文件中添加一行文字“# Test”。如果文件不存在会新建README.md文件。
git init
初始化一个空的Git仓库。
git add README.md
添加README.md文件到暂存区,标记为下次commit的内容。
==========================================================================================================
git commit -m "first commit"
提交暂存区的文件,并附加提交信息"first commit"。
-m 表示为本次提交添加一条提交信息(commit message)。
git commit 命令用于提交暂存区的文件到本地仓库。该命令需要一个参数来指定本次提交的提交信息。
使用 -m 可以在命令行中直接添加提交信息,而不用跳转到默认的文本编辑器来编写消息。
例如:
git commit -m “fix bug #12345”
这个命令会直接以"fix bug #12345"作为本次提交的提交信息。
如果不使用 -m 参数,git commit默认会打开文本编辑器以便输入完整的提交信息。
所以,-m 表示以命令行参数的形式传入本次提交的提交信息,从而跳过文本编辑器打开的步骤,提供一种更简便快速的提交方式。
==========================================================================================================
git branch -M main
重命名当前分支为main。
在 git branch 命令中,-M
选项代表重命名分支。
-M
全称为--move
,用于重命名或移动一个本地分支到一个新名字。
例如:
git branch -M main
这个命令将当前分支重命名为 main
。
如果新的分支名已存在,默认是不允许覆盖已有分支的。如果要强制覆盖,可以使用 -M
或 --force
选项。
git branch -M main -f
这个命令会强制覆盖已经存在的 main
分支。
所以,-M
或 --move
选项表示重命名分支,这在将分支从旧名称像 master
迁移到新名称像 main
时很有用。
==========================================================================================================
git remote add origin git@github.com:Tomato-in/Test.git
添加一个名为origin的远程仓库,指向GitHub上的Test仓库。
这个命令中“origin”只是一个本地对远程仓库的别名或简称,不一定要和远程仓库的真实名称相同。
在Git中,我们可以用 origin、upstream 等名字来代表远程仓库,这些名字在本地只是一个引用或指针,用来指向远程仓库的位置。
“origin”这个名字在Git中是一个默认的约定俗成的别名,通常指向远程仓库的主要分支。
所以在这个命令中,我们添加一个本地别名 “origin”,让它指向GitHub上账户下的Test仓库。
之后我们就可以用“origin”代替全长的GitHub仓库地址,比如:
git push origin main
这样看起来更加简洁清晰。
所以“origin”这里仅仅是本地对远程仓库的一个别名或引用,只是起一个名字来表示那个远程库,并不会影响或修改远程仓库本身的名称。
在Git中,git remote
命令用于管理远程仓库连接。
git remote
的常见用法有:
git remote add
:添加远程仓库连接git remote rm
:删除远程仓库连接git remote show
:查看远程仓库信息git remote rename
:远程仓库重命名
所以在这个命令中:
git remote
表示要对远程仓库进行操作
add
表示添加一个新的远程仓库
origin
是要添加的远程仓库的本地别名
最后的参数是远程仓库的真实地址
所以整条命令的意思就是:
添加一个本地别名为origin
的远程仓库,该仓库指向 GitHub 上Tomato-in/Test.git
这个真实仓库地址。
通过git remote
添加远程仓库连接后,就可以用别名代替地址进行推拉操作了。
==========================================================================================================
git push -u origin main
将本地的main分支推送到origin远程仓库的main分支,并将origin设置为默认远程分支。
-u 指的是 --set-upstream 的缩写。
–set-upstream 是一个 git push 的选项,用来设置本地分支与远程分支的链接关系。
执行 git push -u 后的效果相当于执行了以下两条命令:
git push # 推送本地分支到远程
git branch --set-upstream-to=origin/main main # 将本地main分支与远程origin/main关联
也就是说,-u 可以在推送的同时建立本地分支与远程分支的追踪关系,这样以后就可以通过简化命令进行推拉了。
例如一次性设置上游分支后,后续可以直接:
git push # 不用指定远程分支了
git pull # 不用指定远程分支了
所以,-u 是 --set-upstream 的缩写,用来在推送时建立本地分支与远程分支的链接,非常方便。
这个参数通常在第一次将本地分支推送到远程时使用,用来建立追踪关系。
==========================================================================================================
git ls-files
这条命令罗列出仓库中的所有文件。
git ls-tree -l main
这条命令与上条类似。