git小知识

菜鸟教程
git官方doc
windows可以用一个可视化git工具tortoisegit,支持代码分支可视化和一系列常用git操作

常用命令

clone

复制远端git仓库,在本地创建本地仓库

git clone [options] <repository> [new directory]

log

查看提交commit记录
虽然帮助文档一长串,但是弱水三千,我只取一瓢饮(我只用这一种用法嘿嘿

git log

branch

对分支进行增删改查等管理,但不切换分支

git branch [options]
			默认列出所有本地分支
	-r		查看远端分支
	-a		查看所有分支(本地 + 远端)
	-m [old] <new>	重命名(move old to new-c [old] <new>	拷贝分支(copy old to new-d [name]		删除分支(delete),跟-r一起用则是删除远端分支

checkout

切换分支,或是重置文件

git checkout [options]
	-b <branch>		设置分支(不存在则新建)
	[--detach] [branch/commit]	准备在某分支/提交上工作(分离HEAD)

switch

专用于切换分支,也可以创建分支的同时切换过去

// 切换分支
git switch <branch>
// 从start-point创建分支并切换,可以是某个分支,或是某个提交commit
git switch -c <new branch> [start-point]

pull & push

一个用于从远端拉取最新的代码到本地,一个用于将(修复bug后的)本地代码推送到远端进行更新保存

git pull
git push

status

显示当前工作目录的情况(文件的修改、新增、删除等)

git status [options]
	-s,--short	显示简略信息(默认显示长信息--long

add & rm & restore

修改完文件后,先需要将文件加入addgit索引以准备下一次的提交

git add <file(s)>
git add <path>
git add <pattern>

Examples:
git add *.cpp	// 添加当前目录下所有cpp文件
git add \*.cpp	// 添加当前目录及子目录下所有cpp文件
git add ./		// 直接添加src目录及子目录下所有文件

删除文件用rm(如果有不想添加的目录,想让git添加文件的时候忽略它们,具体见这里),用法与add相似
取消文件修改(不是删除,而是恢复上一次commit的状态)用restore,用法与add相似

commit

提交git已记录的更改到仓库

git commit [options]
	-m MSG		设置commit log

remote

管理远端仓库、分支、url等信息
这个大概不算是常用命令,我是在有次用多个账户拉取上传代码时遇到了相关问题用到这个命令了,所以记录一下

git remote [options]
	-v,--verbose		打印远端详细信息(name & url)
	rename <old> <new>	远端重命名
	get-url
	set-url <name> <url>	设置某个远端的url

忽视文件/子模组管理

.gitignore

.git目录处于同一目录下的一个自己创建的文件,名字就叫.gitignore

所有不想让git处理的文件/目录都可以放在这个文件里

比如像下面这样,自动忽略`test`、`build`、`target`等常见测试构建目录:
.vscode
build
test
target

submodule

添加子模组都需要在当前项目下通过命令添加,否则git不理解该文件夹是子模组,不好关联对应版本

// show submodules status
git submodule
// add a submodule
git submodule add [options] <repository> [path to place this submodule]
	-b branch	指定分支
// update
git submodule update --init
// remove
git submodule deinit <module>	// 标记不再追踪该子模组
git rm <module>		// 删除目录(可以直接 rm -rf <path>)

常见问题集

permission denied (public key)

这种一般是公钥和私钥没配置好

  1. 先用ssh-keygen在本地生成公钥与私钥文件
ssh-keygen -t rsa -b 4096 -C "myemail@xx.xx"
	-t		choose algorithms (rsa dsa ecdsa ed25519)
	-b		bits (key size)
	-C STR	comment
  1. 复制公钥文件内容(后缀是.pub),到git账号profilessh keys里,创建一个新的公钥,粘贴刚才复制的公钥内容即可。

HTTP Basic: Access Denied

如果你clone代码时是使用HTTPS链接,并且近期改动过git账号密码:

  • 控制面板Credential Manager(凭据管理器)Generic Credentials(普通凭据),如果能找到你的git凭据,修改ID密码
  • 如果上述步骤不行,试试控制台运行git config --system --unset credential.helper,在git操作时重新输入ID密码
  • 如果上述步骤仍不行,可以尝试clone代码时改用SSH

ssl certificate problem unable to get local issuer certificate

可通过下述命令解除SSL验证【不建议】,建议仅用于临时解决问题

git config --global http.sslVerify false

false换成true可重新启用

No supported authentication methods available ...

命令行尝试git是否能使用,如果可以,那么说明可能是GIT使用的公钥与TortoiseGIT使用的私钥不同
解决办法
配置TortoiseGIT:git SettingsNetworkSSH client,将 TortoisePlink.exe 改为git安装目录下的/usr/bin/ssh.exe

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值