一 本地操作
1. 本地目录建立
$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit
2 将目录设置为git仓库
git init
3 将文件放到git仓库
git add readme.txt //将内容写入暂存区
git commit -m "wrote a readme file" //将暂存区内容添加到仓库 没有添加到暂存区的更改无法写入得到仓库
4 查看更改
git diff
git status //查看状态
5 版本回退
git reset --hard HEAD^ //回退到上一个版本
git reset --hard commit_id //回退到某一个版本
commit id 可以通过git reflog或 git log查找
6 撤销修改
git checkout --file //回退到最近一次git commit 或者git add时的状态
//注意和切换分支区别 切换分支没有 --
7 删除文件 误删恢复
//删除
git rm test.txt
git commit -m "remove test.txt"
//恢复
//版本库中文件未被删除 恢复
git checkout --test.txt
//git checkout 就是用版本库里的版本替换工作区的版本
二 远程仓库
1 添加远程库
三 分支管理
查看分支:git branch
创建分支:git branch
切换分支:git checkout 或者git switch
创建+切换分支:git checkout -b 或者git switch -c
合并某分支到当前分支:git merge
删除分支:git branch -d
上传分支 :如果当前分支与多个主机存在追踪关系,则可以使用-u选项指定一个默认主机,这样后面就可以不加任何参数使用git push。
git push -u origin master
git push --set-upstream origin B_ADC
删除远端分支,本地分支还显示问题
1、执行 git branch -a 查看所有的本地以及远程的分支
2、执行 git remote show origin 查看远程库,可看到远程分支,本地分支相对应的关系
3、执行 git remote prune origin 删除远程没有本地有的分支
2.主分支同步到子分支
git checkout 分支名childdev
更新dev代码到 子分支childdev
git merge dev
查看状态
git status
修改子分支代码后
git add .
提交到子分支
git commit -m "修改记录"
推送
git push
3. git branch -a 看不到远端的新分支
git remote update
解决查找本地分支与远程分支不同步的方法
四 常见问题
1.git server certificate verification failed
出错原因:https服务证书校验失败
解决:跳过http的ssl证书验证
git config --global http.sslverify false
参考:https://github.com/gitlabhq/gitlabhq/issues/4272
2.https 方式及免密码配置
1. 项目中 git 基本配置
全局用户名密码配置
git config --global user.name “xxx”
git config --global user.email “xxxxxxxx@xx.com”
项目初始化,生成 .git 目录,配置远程项目地址,完成首次提交。
这种方式如果要以后提交时免密码,只能将用户名和密码明文保存在本地,由 git 保管。因为本地没有加密,这种方式是不太安全的。
git 命令删除远程分支后,本地 git branch -a 仍能看到已删除的分支问题
git 的 .gitignore 文件的作用是在代码提交时自动忽略一个文件。不将其纳入版本控制系统。
比如。一般我们会忽略IDE自动生成的配置文件等。
2.如果一个你要忽略的文件已经纳入到了git ,也就是说你已经提交过这个文件了。这时再在 .gitignore 文件中添加上对它的忽略是不起作用的。
你可用:git rm -r --cache xxx 命令来清空本地的git缓存。
可通过vscode 添加到gitignore 获得path
再通过git rm -r --cache path 清除缓存
再使用:git add . 命令来重新提交代码。
3.Git 远程删除分支后,本地 git branch -a 依然能看到的解决办法
使用命令 git remote show origin,可以查看remote地址,远程分支,还有本地分支与之相对应关系等信息。
此时我们可以看到那些远程仓库已经不存在的分支,根据提示,使用 git remote prune origin 命令:
这样就删除了那些远程仓库不存在的分支。
五、现有工程上传仓库并管理
参考https://blog.youkuaiyun.com/weixin_44602865/article/details/119684214
记得本地有更改要先提交commit
问题:git push 卡住
文件过大,需要更改配置