本教程仅记录了学习狂神说git时的学习笔记与一些自己使用时的技巧,侵删。
另外,归根结底最全面的资料还是官方文档,大家应该养成遇到难以解决的问题去官方文档上查询的习惯。(虽然我也没有)
分类
适合个人
版本数据放在服务器上。
缺点:
(1)存在服务器损坏风险
(2)无分支
(1)同步到每个用户本地
(2)可离线提交
linux基本指令
切勿在Linux上尝试 rm -rf / 会格式化电脑
工作区域
#初始化
git init
#克隆远程仓库
git clone [url]
#url:https://github.com/LancasterLiu/spider
git pull
配置环境变量只是为了可以随时使用,但已存在于右键,无需配置,且已自动配置
git config --global user.name xxx
git remote set-url origin
或者
git remote rm origin
git remote add origin [url]
git remote add origin url
git remote remove origin
文件4种状态:
查看状态
#查看所有文件状态
git status
#查看指定文件状态
git status "filename"
git pull origin 远端分支:本地分支
#添加所有文件到暂存区
git add .
#提交暂存区文件到git仓库
git commit -m “文件描述”
git push origin 本地分支:远端分支
上传时忽略文件方法:
在主目录下创建.gitignore文件,可以控制不上传哪些文件
#注释
*.txt #忽略所有txt文件
!lib.txt #lib.txt除外
/temp #不忽略temp
main/ #忽略main下所有文件
main/*.txt #忽略main下所有txt文件
可以比较尚未提交的文修改前后的差异
git diff filename
git log
git回退到上个版本
git reset --hard HEAD^
回退到n次提交之前
git reset --hard HEAD~n
#直接在bash里面输入
ssh-keygen -t rsa
#本地分支
git branch
#远程分支
git branch -r
#仍停留在原分支
git branch 分支名
#切换到新分支
git checkout -b 分支名
分支 | 命名 | 说明 |
---|---|---|
主分支 | master | 主分支,所有提供给用户使用的正式版本,都在这个主分支上发布 |
开发分支 | dev | 开发分支,永远是功能最新最全的分支 |
功能分支 | feature | 新功能分支,某个功能点正在开发阶段 |
发布版本 | release | 发布定期要上线的功能 |
修复分支 | bug | 修复线上代码的 bug |
#合并指定分支到当前分支
git merge 分支名
#本地
git branch -d 分支名
#远程
git branch -dr 分支名
git push origin --delete 分支名
git checkout 分支名
错误描述:
fatal: unable to access ‘https://github.com/…’: OpenSSL SSL_read: Connection was reset, errno 10054
产生原因
一般是因为服务器的SSL证书没有经过第三方机构的签署
解决方法
git config --global http.sslVerify false
错误描述:
remote: Enumerating objects: 19, done.
remote: Counting objects: 100% (19/19), done.
remote: Compressing objects: 100% (19/19), done.
error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function.
fatal: The remote end hung up unexpectedly
产生原因
git默认缓存大小不足
解决方法
git config --global http.postBuffer 20000000
错误描述:
! [rejected] main -> front (non-fast-forward)
error: failed to push some refs to
hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart. Check out this branch and integrate the remote changes
hint: (e.g. ‘git pull …’) before pushing again.
hint: See the ‘Note about fast-forwards’ in ‘git push --help’ for details.
产生原因
文件冲突
解决方法
git stash
git pull
git stash pop stash@{0}
或者强制更新
git fetch --all
git reset --hard origin/master
注:reset有3种模式:
soft:回退版本提交历史,暂存区和工作区不变。
mixed:回退版本提交历史,暂存区文件与该版本一致,工作区不变。
hard:回退版本提交历史,暂存区和工作区文件与该版本一致。
错误描述:
Git bash Error: Could not fork child process: There are no available terminals (-1)
产生原因
打开的git-bash太多
解决方法
打开任务管理器关闭所有的git.exe