Git概述
-
Git版本控制
- Git是一个版本管理控制系统(缩写VCS),它可以在任何时间点,将文档的状态作为更新记录保存起来,也可以在任何时间点,将更新记录恢复回来。
-
基本工作流程
| git仓库 | 暂存区 | 工作目录 | | ---------------- | ----------------- | ------------------- | | 用于存放提交记录 | 临时存放被修改文件 | 被Git管理的项目目录 |
-
Git进入项目目录
- 直接在控制台里面输入
cd g:/code/A/git-demo
- 在目标项文件夹内鼠标右击,点击
Git Bash Here
- 直接在控制台里面输入
-
Git内的复制粘贴快捷键
Ctrl+ins
复制Shift+ins
粘贴
Git基本使用
-
使用前配置:在使用 git 前,需要告诉 git 你是谁,在向 git 仓库中提交时需要用到。
- 配置提交人姓名:
git config --global user.name 提交人姓名
- 配置提交人姓名:
git config --global user.email 提交人邮箱
- 查看git配置信息:
git config --list
- 配置提交人姓名:
-
配置修改
- 如果要对配置信息进行修改,重复上述命令即可。
- 配置只需要执行一次。
-
Git提交步骤
git init
初始化git仓库git status
查看文件状态git add 文件列表
追踪文件,将文件放入暂存区git add .
添加当前目录的所有文件到暂存区git commit -m 提交信息
向仓库中提交暂存区所有代码git commit 文件列表 -m 提交信息
向仓库中提交暂存区的指定文件git log
查看提交记录
-
Git撤销操作
git checkout 文件
用暂存区中的文件覆盖工作目录中的文件git rm 文件
删除工作区文件,并且将这次删除放入暂存区git rm --cached 文件
将文件从暂存区中删除,但该文件会保留在工作区git mv 源文件名 新文件名
改名文件,并且将这个改名放入暂存区git rest --hard commitID
将 git 仓库中指定的更新记录恢复出来,并且覆盖暂存区和工作目录- 更新记录用
git log
查看
- 更新记录用
-
Git暂存区查看
git ls-files
查看暂存区内的文件目录git ls-files -s
查看暂存区内所有文件对应的Blob对象git ls-files -s -- 文件
查看暂存区内文件对应的Blob对象git cat-file -p Blob对象值
查看Blob对象值的内容
-
Git分支命令
git branch
查看分支git branch -a
列出所有本地分支和远程分支git branch 分支名称
创建分支git checkout -b 分支名称
新建一个分支,并切换到该分支git checkout 分支名称
切换分支,并更新工作区git checkout -
切换到上一个分支git merge 来源分支
合并分支git branch -d 分支名称
删除分支(分支被合并后才允许删除)(-D 强制删除)
-
Git暂时保存更改
git stash
存储临时改动,将暂存区内的内容临时存储与剪切板,以便于可以跳转到其他分支进行操作git stash pop
恢复改动,重新回到开发分支时,将剪切板内的内容释放至暂存区
Git BUG处理
-
fatal: Unable to create 'D:/Program Files/Git/.git/index.lock': File exists.
- git操作时修改了一些文件,导致操作冲突被锁住了
- 解决方案:删掉该文件
rm -f /.git/index.lock
-
fatal: not a git repository (or any of the parent directories): .git
- 一般是没有初始化git本地版本管理仓库,所以无法执行git命令
- 解决方法:操作之前执行以下命令行:
git init
- 然后执行一下
git status
查看状态信息
GitHub
-
本地仓库推送至远程仓库
git push 远程仓库地址 分支名称
将本地仓库分支推送至远程仓库git remote add 远程仓库地址别名 远程仓库地址
给远程仓库地址取代号git remote -v
查看仓库地址代号git push 远程仓库地址别名 分支名称
用别名将本地仓库分支推送至远程仓库git push -u 远程仓库地址别名 分支名称
记住推送地址及分支,下次推送只需要输入git push即可
-
远程仓库克隆至本地
git clone 仓库地址
克隆远端数据仓库到本地- 本地没有仓库
git pull 远程仓库地址 分支名称
拉取远程仓库中最新的版本- 本地已存在仓库
-
GitHub共同开发
Settings
可以邀请协同者共同完成项目
-
解决冲突
pull
先拉取远程仓库中最新的版本- 找到受冲突的代码段,删除多余部分,修改完成
push
将本地仓库分支推送至远程仓库
-
Git忽略清单
- 在目录中新建文件
.gitignore
- 将不需要git管理的文件写入
.gitignore
中
- 在目录中新建文件
-
GitHub跨团队协作
Fork
程序员C将程序员A的项目克隆在本地进行修改- 程序员C将优化后的仓库推送至远程
- 程序员C发起
Pull requests
请求 - 程序员A审核代码
- 程序员A
Merge pull request
合并更新代码库
-
SSH密钥生成
ssh-keygen
生成秘钥C:Users用户.ssh
秘钥存储目录id_rsa.pub
公钥名称id_rsa
私钥名称
-
GitHub SSH免登录
- 私钥保留于计算机本地
- 公钥配置与GitHub
- GitHub 账户设置
SSH and GPG keys
栏目- 点击
New SSH key
- 将公钥内的内容粘贴至 Key 选框中
- 配置仓库:在复制仓库地址时,切换至
Use SSH
-
为仓库添加详细的说明
- 在项目中添加一个
readme.md
文件 - 推送至远程仓库
- 在项目中添加一个