一、Git的安装
- Windows版的Git,从git-scm.com/download/wi…
- 安装完成后,右键打开菜单栏找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
- 安装完成后,还需要最后一步设置,在命令行输入:
- git config --global user.name "Your Name"
- git config --global user.email "email@example.com" 备注:以上两步的名字和邮箱可随意配置,但最好使用自己的邮箱。
- git config user.name 用于查看配置的姓名
- git config user.email 用于查看配置的邮箱
- 因为Git是分布式版本控制系统,所以每个机器都必须自报家门:你的名字和Email地址。
二、 Linux的命令
-
mkdir xxx 新建文件夹
-
vi x.txt 新建文件(Visual editor)
1.输入 i 进入编辑模式 2. ESC + :+ wq 保存并退出 3. ESC + :+ q! 不保存并退出 4. cd xxx 进入xxx目录 5. cd .. 返回上一级目录 6. ls 列出当前文件夹中所有文件 7. pwd 显示当前目录 8. cat x.txt 显示文件内容 9. clear 清屏
三、 工作区+版本区+暂存区
-
工作区(working Directory):简单的理解——你在电脑里能看到的目录。
-
暂存区(stage):介于工作区和版本区中间,工作区到版本区的“必经之路”
-
版本库(Repository):工作区有一个隐藏目录.git,准确的来说这个不算工作区,而是Git的版本库。
- 第一步:git add把文件添加进暂存区。
- 第二步:git commit把暂存区的所有内容提交到当前版本库。
四、 创建版本库
-
git init命令:初始化版本库
- 创建成功会提示:Initialized empty Git repository in c:/Users/xxx/Desktop/demogit/.git/
- 目录上多出一个.git的文件夹,这个文件夹是Git来跟踪管理版本库的,不要去修改和删除这个文件里的内容。
-
git add x.xx命令:添加指定文件到暂存区中
1.没有任何提示,代表交成功了 2.若未初始化,会提示fatal: Not a git repository (or any of the parent directories): .git 3.失败会提示fatal: pathspec 'x.txt' did not match any files 4.可能会出现警告:warning: LF will be replaced by CRLF in xxxxx 原因: linux和window的换行符不一致导致的。 解决方式:执行命令git config --global core.autocrlf false -
怎么查看文件有没有添加成功呢?
1.git status 红色表示在工作区。 绿色表示在暂存区。 没有任何显示代表所有文件位于版本区。 -
git commit -m 'xxx' 提交暂存区所有文件到版本区
五、差异对比
- git diff : 比较暂存区与工作区
- git diff --cached : 比较版本区与暂存区
- git diff master : 比较版本区与工作区
六、日志+版本号
- git log 显示从最近到最远的所有提交日志
- git reflog 显示每次提交(commit)的commit id
七、版本回退+版本穿梭+版本撤销
- git reset --hard HEAD^ 版本回退(回退一次提交)
- git reset --hard Obfafd 回退到指定Obfafd的commit id版本
- git reset HEAD 用版本库中的文件去替换暂存区的全部文件。
- git checkout -- x.txt 用暂存区指定文件去替换工作区的指定文件(危险)
- git checkout HEAD x.txt 用版本库中的文件替换暂存区和工作区的文件(危险)
- git rm --cached x.txt 从暂存区删除文件
八、删除文件
- git rm x.txt 删除文件
- 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 branch1 branch2 显示出两个分支之间所有有差异的文件的详细差异
- git diff branch1 branch2 --stat 显示出两个分支之间所有有差异的文件列表
- git diff branch1 branch2 xxx 显示指定文件的详细差异
十、版本冲突
- 合并分支时,如果在同一个文件,在同一个地方,都修改了或新增内容会引起版本冲突。
- 解决版本冲突最好的办法是借助IDE解决,简单且高效。