1、Git把管理的文件分为了两个区域四个状态。
git init,初始化,表示即将对当前文件夹进行版本控制。
git status,查看Git当前状态,如:那些文件被修改过、那些文件还未提交到版本库等。
git add 文件名,将指定文件添加到版本库的暂存状态。
git commit -m ‘提交信息’,将暂存区的文件提交到版本库的分支。
git log,查看提交记录,即:历史版本记录
2、Git回滚的功能
如果在本地做了修改,但不想提交。
使用 git cheeckout - - 目录名/ 一次性解决
版本回退后,要做强制更新:
git reset --hard 版本号 只是到本地
git push -f origin liucancan 再重新推到远程分支
3、git stash
stash用于将工作区发生变化的所有文件获取临时存储在“某个地方”,将工作区还原当前版本未操作前的状态;stash还可以将临时存储在“某个地方”的文件再次拿回到工作区。
git stash 将当前工作区所有修改过的内容存储到“某个地方”,将工作区还原到当前版本未修改过的状态
git stash list 查看“某个地方”存储的所有记录
git stash clear 清空“某个地方”
git stash pop 将第一个记录从“某个地方”重新拿到工作区(可能有冲突)
git stash apply 编号, 将指定编号记录从“某个地方”重新拿到工作区(可能有冲突)
git stash drop 编号,删除指定编号的记录
4、git branch
git branch 分支名称 创建分支
git checkout 分支名称 切换分支
git branch -m 分支名称 创建并切换到指定分支
git branch 查看所有分支
git branch -d 分支名称 删除分支
git merge 分支名称 将指定分支合并到当前分支
5、基于GitHub实现代码托管
注册GitHub
创建仓库,创建完仓库后会有一个URL代指该仓库
git可以是用该URL进行向远程推送版本信息或获取版本信息
将Git和GitHub结合使用做到避免电脑损坏造成数据丢失以及多地开发的问题,上文执行过程中执行 【git pull origin 分支】命令等同于【git fetch origin 分支】+ 【git merge origin/分支】,并且在执行过程中可能会出现冲突,原因是由于本地代码和获取的最新代码有重合部分,那么就需要自己手动解决冲突然后再继续开发。
6、GitHub协同开发
GitHub中协同开发一般有两种方式:
合作者,将其他用户添加到仓库合作者中之后,该用户就具有向当前仓库提交代码。
组织,创建一个组织,然后再该组织下可以创建多个项目,组内成员可以向组内所有项目提交代码。PS:也可以对某个项目指定合作者
7、Git的配置文件有三个:
系统配置: /private/etc/gitconfig
用户配置: ~/.gitconfig
项目配置:.git/config
8、查询用户信息
git config --list
9、git rebase
https://www.cnblogs.com/pinefantasy/articles/6287147.html
10、加深git 分支理解
http://www.ruanyifeng.com/blog/2012/07/git.html
https://www.cnblogs.com/pinefantasy/articles/6287157.html
master分支,主maser分支,长存
dev分支,开发分支,长存
feature分支,特性分支,需要时候建立,合并完成后删除该分支
release分支,发布分支,提测时建立,完成后删除该分支
hotfix分支,缺陷分支,修复线上紧急问题时建立,完成后删除该分支
11、删除某个git config
git config --global --unset user.emall
12、git tag
Git中的分支和标签有点类似,都是引用(ref)或者说指针。
通常在发布软件的时候打一个tag,tag会记录版本的commit号。
列出已有的tag :git tag
加上-l命令可以使用通配符来过滤tag : git tag -l “v3.3*”
新建tag : git tag v1.0
加上-a参数来创建一个带备注的tag,备注信息由-m指定 : git tag -a tagName -m “my tag”
查看tag详细信息 : git show tagName
给指定的某个commit号加tag: git tag -a v1.2 9fceb02 -m “my tag”
打tag不必要在head之上,也可在之前的版本上打,通过git log获取,取校验和的前几位数字即可。
将tag同步到远程服务器: 使用git push origin [tagName]推送单个分支
推送本地所有tag,使用git push origin --tags
切换到某个tag : git checkout tagname
删除某个tag: 本地删除 git tag -d v0.1.2
并不想提交文件夹里面的内容
git rm -r --cached .
git add .
git commit -m ‘update .gitignore’
git push