git基本使用
安装下载
https://npm.taobao.org/mirrors/git-for-windows/ 淘宝镜像 本身git下载较慢
下载好之后 一直 next , 安装好后 右键 gitBash Here 打开命令 输入 git version 查看git 版本
使用前配置
使用git之前 ,我们需要告诉git 我是谁,我的一些信息,因为,在向git仓库提交代码时候需要知道这个代码是谁提交的,基本的一个信息
- git config --global user.name
- git config --global user.email
- 查看git配置信息 git config --list
- 主要,如果上面信息输错或者想修改,重复下命令即可覆盖,也可以去c盘下的.git.config文件中进行修改
提交步骤
- git init 【初始化 git 仓库】
- git status 【查看文件状态】
- git add 文件列表 【追踪文件,把未被git管理的文件添加到git暂存区中,给git管理】
- 当需要一次性提交多个到暂存区的话 直接 git add .
- git commit -m ‘提交信息’ 【向git仓库提交代码】
- git log 【查看提交记录】
恢复记录
- git rest --hard commitID 【将git仓库中指定的更新记录恢复出来,并且覆盖暂存区和工作目录】
撤销
- 用暂存区中的文件覆盖目录中的文件:
git checkout 文件
- 将git 仓库中指定的更新记录恢复出来,并且覆盖暂存区和工作目录:
git rest --hard commitID
也就是说返回某次提交,并且将工作目录的文件覆盖
git进阶
分支
为了方便理解,大家暂时可以认为分支就是当前工作母中代码的一份副本
使用分支,可以让我们从开发主线上分离出来,以免影响开发主线
分支细节
- 主分支(master):第一次想git仓库中提交更新记录时自动产生的一个分支
- 开发分支(develop):作为开发的分支,基于master分支创建
- 功能分支(feature): 作为开发具体功能的分支,基于开发分支创建
分支命令
- git branch 【查看分支】
- git branch 分支名称 【 创建分支】
- git checkout 分支名称 【 切换分支】
- git merge 来源分支 【合并分支】
- git branch -d 分支名称 【 删除分支,分支合并后才允许删除(-D 强制删除)】
注意分支上 commit的文件,其他分支跟主分支上并不可见
合并分支
切换到被合并的分支 执行 git merge 来源分支
即可将来源分支合并到该分支上,合并后,原来分支上的文件被合并到该分支上了,但是被合并的分支还是存在的,可以继续切换使用,如果想连分支一起删除的话执行git branch -d 分支名称即可删除
暂时保存更改
在git中,可以暂时提取分支上的所有的改动并且储存,让开发人员得到一个干净的开发副本,临时转向其他工作,使用场景:分支临时切换
- 存储临时改动:git stash
- 恢复改动: git stash pop
git推送远程仓库到github
- git push 远程仓库地址 分支名称 【普通提交】
- git remote add 远程仓库别名 远程仓库地址 【推送远程地址起别名】
- git push 远程仓库别名 分支名称 【地址别名提交】
- git push -u 远程仓库地址别名 分支名称
- -u 记住推送地址及分支,下次推送只需要输入git push 即可
拉取操作
克隆远端数据仓库到本地 :
git clone 仓库地址
拉取远程仓库中的最新版本
拉取远程仓库中最新的版本: git pull 远程仓库地址 分支名称
解决冲突
在多人同时开发一个项目时,如果两个人修改了同一个文件的同一个地方,就会发生冲突。冲突需要人为解决
跨团队协作
- 程序员C fork 仓库
- 程序员C 将仓库克隆在本地进行修改
- 程序员C 将仓库推送到远端
- 程序员C 发起 pull reqest
- 原仓库作者审核
- 原仓库作者合并代码
SSH
生成秘钥 命令 ssh-keygen
秘钥默认存储目录 :C:\Users\用户\ .ssh
公钥名称: id_rsa.pub
私钥名称: id_rsa
GIT忽略清单
将不需要被git管理的文件名字添加到此文件中,在执行git命令的时候,git就会忽略这些文件,git忽略的清单文件名称: .git
将工作目录中的文件全部添加到暂存区: git add.