- Linux
- Git
- Git 是目前世界上最先进的分布式版本控制工具( 没有之一 )
-
Windows git 下载地址 :
- Git - Downloading Package (git-scm.com)
- 下载 -> 默认选项安装
- 桌面右键 点击
Git Bash Here
即可看到一个终端窗口 - 在终端内输入 git --version 如果看到版本信息即安装成功
-
安装完成后,需要最后一步设置,在终端内输入(不要复制 英文输入法下手打)
-
git config --global user.name"Your Name"
-
git config --global user.email"[email protected]"
**备注:**以上二步的姓名和邮箱可以随意更改,建议使用自己的
-
git config user.name 用于查看配置的姓名
-
git config user.email 用于查看配置的邮箱
-
因为 Git 是分布式版本控制系统,所以每个机器必须配置:用户名和email地址
-
- mkdir xxx 新建文件夹
- vi x.txt 新建/编辑一个名为 x 的 txt 文件
- 输入 i 进入编辑模式
- Esc + : +wq 保存并退出
- Esc + : + q! 不保存退出
- cd xxx 进入一个名为 xxx 的文件夹
- cd .. 返回上一级目录
- ls 列出当前文件夹所有的文件
- pwd 显示当前目录
- cat x.txt 显示 名为 x 的 txt 文件的内容
- clear 清屏( 需要注意 : cmd 控制台中 cls 为清屏 )
- 工作区 ( working Directory ) : 简单的理解 —— 你在电脑中能看到的目录
- 暂存区 ( stage ) : 介于 工作区 和 版本区 中间,是工作区到版本区的必经之路
- 版本库 ( Repository ) : 工作区有一个隐藏目录 .git ,这个文件夹不算工作区,而是 Git 的版本库
- 第一步 : git add 把文件添加进暂存区
- 第二步 : git commit 把暂存区的所有内容提交到当前版本库
-
git init 命令 : 初始化版本库
- 创建成功会提示 : Initialized empty Git repository in C:/Users/31195/Desktop/xxx/.git/
- 目录上会多一个 .git 的文件夹( 没有显示的请打开 显示隐藏文件 ),这个文件夹是 Git 来跟踪管理版本库的,不要去修改/删除里面的内容
-
git add x.xx 命令 : 添加指定文件到暂存区
- 没有任何提示,代表提交成功( Linux的设计理念 )
- 若未初始化,则会提示: fatal: not a git repository (or any of the parent directories): .git
- 失败则会提示 : fatal: pathspec 'x.xx' did not match any files
- 可能出现:warning: LF will be replaced by CRLF in xxxx
- 原因 : Linux和Windows的换行符不一致导致
- 解决方法 :执行 git config --global core.autocrlf false
-
怎么查看文件有没有添加成功
- git status
- 显示 红色 则未提交到暂存区
- 显示 绿色 则已经提交到暂存区
- git status
-
git commit -m '对本次提交的描述'
-
显示则代表 已经成功提交到版本库中
[master (root-commit) 1c2f825] xxxx 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 "\346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243.txt"
-
如果只输入git commit会出问题,这时需要 ESC + : + q! 退出即可
-
- git diff : 比较暂存区和工作区
-
git reset --hard HEAD^ 版本回退( 回退一次提交 )
-
git reset --hard 版本号 回退到指定版本号的 commit id 版本
-
git reset HEAD 用
版本库
中的文件去替换暂存区
的全部文件 -
git checkout --x.xxx 用
暂存区的指定文件
去替换工作区的指定文件
危险 -
git checkout HEAD x.xxx 用
版本库中的文件
替换暂存区
和工作区
的文件 危险 -
git rm --cached x.xxx 从
暂存区
删除文件
- git rm x.xxx 删除文件
- git rm -r xxxx 删除文件夹
- 常见问题
- git checkout -b dev 创建 dev 分支,并切换到 dev 分支
- git branch 查看当前分支
- git checkout master 切换到主分支
- git merge dev 合并 dev 分支到当前分支
- git branch -d dev 删除指定分支
- git diff 分支1 分支2 显示出两个分支之间所有差异文件的详细差异
- git diff 分支1 分支2 --stat 显示出两个分支之间所有差异文件列表
- git diff 分支1 分支2 x.xxx 显示指定文件的详细差异
- 合并分支时,如果在同一个文件的同一个地方,都修改了或新增内容会引起版本冲突
- 解决版本冲突最好的办法是借助 Webstorm ( 或 VS Code ) 解决,简单且高效
- GitHub 是一个 Git 项目托管网站
-
能够分享你的代码或其他开发人员配合一起开发
-
GitHub 是一个基于 Git 的代码托管平台,Git 并不像 SVN 那样有一个中心服务器。目前我们使用到的 Git 命令都是在本地执行,需要将数据放到一台其他开发人员能够连接的服务器上
-
git init
-
**git add ***
-
git commit -m 'this is NO.1 commit'
-
在 GitHub 上创建一个远程仓库
-
git remote add origin https://<token令牌>@github.com/<GitHub用户名>/<仓库名> 2021年8月14号更新后,传统的提交方式已经失效。需要采用token令牌的方式提交
-
token令牌获取方式
- 在右侧点击头像 点击 Settings
- 点击图上红色框
- 点击图上红色框
- 点击图上红色框
- Note 可以随便写
- token的过期时间 建议设置成无限期限
- 为不同的用户(组)生成不同的token,给予不同的token不同的权限。自己个人用的话,全选就可以
- 创建token等待系统生成token
- token 记得保存好,离开页面后 将无法再看到令牌
更详细的步骤 请参考官方文档:创建个人访问令牌 - GitHub Docs
-
- git push -u origin master
- 第一次推送的时候 需要加上 -u 参数,Git 不但会把本地的 master 分支内容推送到远程新的 master 分支,还会把本地 master 分支和远程的 master 分支关联起来,在以后推送时可以简化命令 git push origin master
- 备注 : 正常情况下,成功推送一次后,电脑会记住相关信息。下次推送时不会再提示输入。若电脑不能自动记住相关信息,需要执行命令 : git config --global credential.helper store
- git pull origin master 将远程仓库的 master 分支上的代码版本复制/合并到本地 master 分支上
- git fetch origin master:tmp 新建一个tmp分支,将远程仓库的 master 分支上代码版本复制到本地 tmp 分支上,不会自动合并
-
git clone 远程仓库地址
-
**备注:**只在第一次获取远程库时,才需要克隆
-
mkdir XXX 创建一个空目录 XXX指目录名
-
pwd 显示当前目录的路径
-
cat xxx 查看xxx文件内容
-
git init 把当前的目录变成可以管理的 git 仓库,生成隐藏的.git 文件夹
-
git add xxx 把xxx文件添加到暂存区
-
git commit -m 'xxx' 提交文件 -m后面是注释 必须写
-
git status 查看仓库状态
-
git log 查看提交历史记录
-
git reset --hard HEAD^ 往上回退一个版本
-
git reflog 查看提交历史记录的版本号id
-
git checkout --xxx 把xxx文件在工作区的修改全部撤销
-
git rm xxx 删除xxx文件
-
git remote add origin https://<token令牌>@github.com/<GitHub用户名>/<仓库名> 关联一个远程库
-
git push -u ( 第一次加上 -u ,以后不用 ) origin master 把当前master分支推送到远程库
-
git clone 远程仓库地址 从远程库克隆
-
git checkout -b dev 创建dev分支,并切换到dev分支
-
git branch 查看当前所有的分支
-
git checkout master 切换回master分支
-
git merge dev 在当前分支合并dev分支
-
git branch -d dev 删除dev分支
-
git branch xxx 创建分支xxx
-
git remote 查看远程库信息
-
git remote -v 查看远程库的详细信息
-
git pull origin master 将远程库的更新拉取到本地并自动合并
- 每次提交之前:先更新,再提交
- 敏感时间点,一定要及时更新文件
- 多提交,避免 “只关注写代码,不关注提交” 的现象
- 每次提交必须写清晰明了的提交说明
- 不要提交不能通过编译的代码
- 不要提交自己不明白的代码
- 慎用锁定功能( 尽量避免使用锁,不轻易解锁已上锁的文件 )
- 不要提交本地自动生成的文件、文件夹