git 常用命令
创建仓库
git init//初始化仓库
git clone 路径 //拷贝一份远程仓库,也就是下载一个项目。
配置用户信息
git config --global user.name "runoob"
git config --global user.email test@runoob.com
查看配置信息
git config --list
常用提交命令
git add . //添加文件到暂存区。
git commit -m "提交描述" //将暂存区内容添加到仓库中。
git push //上传远程代码并合并
git status //查看仓库当前的状态,显示有变更的文件。
拉取代码命令
git pull //下载远程代码并合并
git pull origin 分支名 //从远程拉取指定分支的代码并合并
git fetch // 从远程获取代码库
? git pull 和 git fetch 有什么区别
-
1,拉取不同:根据上图,git pull是直接拉到工作区并且进行合并,如果有冲突是需要手动解决,而git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中
-
2,commitID不同:我们本地的
git文件中对应也存储了git本地仓库分支的commit ID和 跟踪的远程分支的commit ID,对应文件如下:
.git/refs/head/[本地分支]
.git/refs/remotes/[正在跟踪的分支]
//使用 `git fetch`更新代码,本地的库中`master`的`commitID`不变,
//但是与`git`上面关联的那个`orign/master`的`commit ID`发生改变
综上:
相同点:
- 在作用上他们的功能是大致相同的,都是起到了更新代码的作用
不同点:
- git pull是相当于从远程仓库获取最新版本,然后再与本地分支merge,即git pull = git fetch + git merge
- 相比起来,git fetch 更安全也更符合实际要求,在 merge 前,我们可以查看更新情况,根据实际情况再决定是否合并
分支管理命令
git branch //查看本地所有的分支
git branch -r //查看远程分支
git branch -a //产看所有分支
git branch 分支名 //创建分支
git checkout 分支名 //切换分支
git checkout -b 分支名 //创建新分支并立即切换到该分支下
git push origin 分支名 //将新分支推送到github
git branch -d 分支名 //删除本地分支
git push origin :分支名 //删除远程分支
合并代码管理
git merge 分支名 //合并分支名到当前的分支,只是本地,远程需要再push
git cherry-pick <commitHash> <commitHash>
//部分代码合并,将指定的提交(commit)应用于其他分支,可以一个或多个
//使用方法:记录下原分支的commit,然后切换到需要合并代码的分支,使用命令获取代码在本地,再使用commit push提交远程,会生成新的commitHash
git cherry-pick冲突
--continue用户解决代码冲突后,第一步将修改的文件重新加入暂存区(git add .),第二步使用下面的命令,让 Cherry pick 过程继续执行。--abort发生代码冲突后,放弃合并,回到操作前的样子。--quit发生代码冲突后,退出 Cherry pick,但是不回到操作前的样子
查看提交记录
git log //查看历史提交记录
//列举几个git log常用的选项
git log --oneline //以简洁的一行格式显示提交信息
git log --graph //以图形化方式显示分支和合并历史。
git log --reverse --oneline //逆向显示所有日志。
git log --author //查找指定用户的提交日志
git blame <file> // 以列表形式查看指定文件的历史修改记录。
帮助
命令加上--help,查看详细的帮助文档
远程仓库操作
git remote add [shortname] [url] //添加一个新的远程仓库
SSH加密
ssh-keygen -t rsa -C "youremail@example.com" //生成SSH key
- 成功的话会在 ~/ 下生成 .ssh 文件夹,进去,打开 id_rsa.pub,复制里面的 key。找到远程仓库的配置SSH的地方,将复制的key填写到相应位置即可。
- 或者使用命令查看key值,然后复制,同上
cd ~/.ssh
cat id_rsa.pub
git 错误
安全认证
warning: ----------------- SECURITY WARNING ----------------
warning: | TLS certificate verification has been disabled! |
warning: ---------------------------------------------------
warning: HTTPS connections may not be secure. See https://aka.ms/gcmcore-tlsverify for more information
查看https://aka.ms/gcmcore-tlsverify后,发现应该是缺少了安全认证,所以解决方法是重启安全认证。
解决方法:
git config --global http.sslVerify true
UNC路径不支持
本质是window cmd无法访问局域网内共享的文件夹
'-----一个路径'用作为当前目录的以上路径启动了CMD。EXE
UNC路径不受支持,默认值设为WIndows目录
系统找不到指定的文件
解决方法:
打开注册表
找到HKEY_CURRENT_USER\Software\Microsoft\Command Processor
添加值DisableUNCCheck 类型为REG_DWORD 并将该值设为1(十六进制)