git 使用笔记

git 使用笔记

官方中文教程网址

https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%85%B3%E4%BA%8E%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6

一些名词

暂存区:git中有暂存的概念,如果我们跟踪(add)了一个文件,那么它就会被添加到暂存区,当我们提交commmit它时它就会被保存为一个版本。而在非暂存区中的文件不会被存到新的版本中。

分支相关操作

git checkout branch2       #转到 branch2 这个分支。
git checkout -b branch3     #创建 branch3 这个分支并转到这个分支。
#上面的 -b 我觉得就是 branch 的缩写
git branch                  #查看当前有哪些分支,并且当前 checkout 哪个分支
git branch branch4          #创建一个 branch4 分支
git merge branch3		   #将 branch3  分支和当前分支合并。
git branch -d branch3       #将 branch3 分支删除。

文件相关操作

git add filename.cpp #将当前 文件夹 中的 filename.cpp 加入跟踪,当然必须是基于当前目录的完整路径,比如本例 filename.cpp 就和 .git 在同一目录。
git add *            #跟踪当前 文件夹 中的所有文件
git status           #查看当前 repository 中有改动文件的状态。 一般有改动但为跟踪会标记为红色,有改动跟踪了会是绿色
git commit			#使用该命令,会提交所有跟踪中的内容,不过会提前弹出一个文件,编辑该文件可以备注这次 commit 的内容。编辑完那个文件直接关掉就会完成 commit。 值得注意的是,该命令也会提交之前创建的本地分支
git commit -m "啥也没改"  #使用该命令可以跳过备注本次更改的步骤,本次更改的内容备注为: 啥也没改
git commit -a         #给 git commit 加上 -a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤
git rm filename.o     #将filename.o文件从暂存区中删除

查看历史

git log                #可以查看提交的历史和备注 按 q 键可以推出
git log -p             #加入 -p 后会显示每次提交的差异。
git log -p -2          #加入 -2 就只显示最近两次的提交了

git 的一些设置

cat .gitignore
#忽略所有以 .o 或 .a 结尾的文件。一般这类对象文件和存档文件都是编译过程中出现的。
*.[oa]
#忽略所有名字以波浪符(~)结尾的文件,许多文本编辑软件(比如 Emacs)都用这样的文件名保存副本。 此外,你可能还需要忽略 log,tmp 或者 pid 目录,以及自动生成的文档等等。 要养成一开始就为你的新仓库设置好 .gitignore 文件的习惯,以免将来误提交这类无用的文件。
*/~
# 忽略所有的 .a 文件
*.a

# 但跟踪所有的 lib.a,即便你在前面忽略了 .a 文件
!lib.a

# 只忽略当前目录下的 TODO 文件,而不忽略 subdir/TODO
/TODO

# 忽略任何目录下名为 build 的文件夹
build/

# 忽略 doc/notes.txt,但不忽略 doc/server/arch.txt
doc/*.txt

# 忽略 doc/ 目录及其所有子目录下的 .pdf 文件
doc/**/*.pdf

#所有空行或者以 # 开头的行都会被 Git 忽略。
#可以使用标准的 glob 模式匹配,它会递归地应用在整个工作区中。
#匹配模式可以以(/)开头防止递归。
#匹配模式可以以(/)结尾指定目录。
#要忽略指定模式以外的文件或目录,可以在模式前加上叹号(!)取反。

其他问题

ybw@ybw:~/LinuxC/PracticeCode$ git branch
* (HEAD detached from refs/heads/vmUbuntu20.04)

HEAD detached from refs/heads/

这种情况是因为现在指向branch的指针处于游离状态,导致这种情况出现的原因是之前切换到了一个历史版本中(可能是你利用git checkout < commit id>切换到了某一次指定的提交),若此时你进行了commit操作,那么就会导致一个匿名的分支被创建,当你要进行checkout操作时,会提醒你,将匿名分支进行保存,而保存的方法就是给这个匿名分支新建一个分支。

关于token

使用以下命令可以避免每次提交都输入token

#也可以 把token直接添加远程仓库链接中,这样就可以避免同一个仓库每次提交代码都要输入token了:
git remote set-url origin https://<your_token>@github.com/<USERNAME>/<REPO>.git
#your_token:换成你自己得到的token
#USERNAME:是你自己github的用户名
#REPO:是你的仓库名称
例如
git remote set-url origin https://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@github.com/shliang0603/Yolov4_DeepSocial.git/

repo

再说一个新发现:以前用repo forall 执行一些命令的时候,可能再遍历到某个仓库的时候出了问题,但是我却苦于不知道这个仓库到底是哪个!一直也没有解决。今天终于找到了。。。。 关键时候还是要看命令自己带的帮助手册呀。。。

repo help forall 用这个命令查看下针对forall的帮助吧。说的很清楚,repo执行的时候加上-p参数就可以在遍历到每个仓库的时候先打印出当前的pwd,然后再继续执行-c所指定的命令。举例如下:

repo forall -p -c git branch

ssh

使用git时,经常要添加公钥,但是有时候发现自己添加的公钥并没有起作用,还是没权限访问,原因是ssh更新的时候认为 rsa_1 这种加密算法太落后了,默认不使用这种算法,所以导致没法正常认证,可以通过下面的方法修改。

# 编辑 ssh 配置文件
sudo vim /etc/ssh/ssh_config
# 添加以下内容
PubkeyAcceptedKeyTypes +ssh-rsa
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肥杨同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值