GIT 简介
GIT 是一个分布式版本控制系统的软件,主要用来控制代码的版本。
安装地址下载:git-scm.com/download/wi…
安装后出现三个版本
GIT GUI // 图形化的界面
GIT BASH // 命令行工具
GIT CMD
安装完成之后,我们还需要设置我们的名字和邮箱:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
查看是否设置成功
$ git config user.name
$ git config user.email
说明新建一个GIT功能分支的步骤,提供每个步骤的指令,并对指令进行说明。
-
Git branch name // 创建名字为name的branch
-
Git checkout xxx_dev // 切换到名字为xxx_dev的分支
-
Git pull //从远程分支拉取代码到本地分支
-
Git checkout -b main_furture_xxx // 创建并切换到main_furture_xxx
-
Git push origin main_furture_xxx 执行推送的操作,完成本地分支向远程分支的同步
说明GIT合并的两种方法以及区别。
-
Git Merge:这种合并方式是将两个分支的历史合并到一起,现在的分支不会被更改,它会比对双方不同的文件缓存下来,生成一个commit,去push。
-
Git ReBase:这种合并方法通常被称为“衍合”。他是提交修改历史,比对双方的commit,然后找出不同的去缓存,然后去push,修改commit历史。
如何查看文件的提交历史和分支的提交历史。
$ git log <filename> 使用git log查看文件提交历史
$ git log branch file 使用git log查看分支提交历史
我们在本地工程常会修改一些配置文件,这些文件不需要被提交,而我们又不想每次执行git status时都让这些文件显示出来,我们该如何操作?
在Git工作区的跟目录下创建一个特殊的.gitignore文件,然后把忽略的文件名编辑进去,Git就会自动忽略这些文件。
GIT修改name和email
$ git config user.name "username" //修改当前仓库的username
$ git config user.email "useremail" //修改当前仓库的useremail
$ git config --global user.name "username" //修改全部仓库的username
$ git config --global user.email "useremail" //修改全部仓库的useremail
查看所有GIT的congfig
$ git config --list
Git的多个版本的回退和前进
$ git log //查看git的版本库
commit <span class="variable">aff8f089</span>2c95b958e4c5dac3cb6128860047fd7e
Author: ArvinChencong <mr.arvin@aliyun.com>
Date: Sun Jul 23 11:16:15 2017 +0800
Hello Breakyizhan.com
commit <span class="variable">7ed03c09</span>76c11afbdad194681c51c3140490512f
Author: ArvinChencong <mr.arvin@aliyun.com>
Date: Sun Jul 23 11:14:51 2017 +0800
Hello Arvin
commit <span class="variable">38857818</span>315e6eca295617842752e003d5f17c4c
Author: ArvinChencong <mr.arvin@aliyun.com>
Date: Sun Jul 23 00:07:15 2017 +0800
Hello GIT
由上往下是最新到最老的版本,时间线都会给你标记出来了,我们可以用git reset --head加多前6到8位的版本号(不用写全版本号,当然写全也是可以的)就可以回退了。
$ git reset --hard 7ed03c0 //回退到Hello Arvin的版本
$ git log
如图所示:
我们版本库的log已经是没有了“Hello Breakyizhan.com”这个版本了。但是,我现在又想要这个版本了,怎么办?
$ git reflog //查看你每一操作GIT的记录
$ git reset --hard aff8f0892
$ git log
Git 删除文件
$ git rm hello.vue
$ git add .
$ git commit -m "xxxx"
如果删除错了,想恢复文件
$ git checkout hello.vue
GIT远程仓库github的建立 , 生成publich key的方法
检查是否已经存在 id_rsa.pub 或 id_dsa.pub 文件,默认目录是C:\Users\Administrator.ssh,复制里面的内容到github上面去创建SSH keys
$ cd ~/.ssh (如果有则进入)
$ ls (查看当前所在文件的目录)
$ ssh-keygen -t rsa -C "your_email@example.com" // 若没有,创建一个SSH
关联本地仓库和github仓库
$ git remote add origin XXXXX //XXXXX:指的是代码地址(例如:https://github.com/Breakyizhan/HelloGIT.git)
测试仓库的连接
$ ssh -T git@github.com
查看本地分支
$ git branch
xxx
yyy
* master // 目前所处的分支
查看远程分支
$ git branch -r
查看本地和远程分支
$ git branch -a
创建分支
$ git checkout -b dev //创建并切换分支
切换分支
$ git checkout xxx // 切换到XXX分支上
Switched to branch 'xxx'
删除本地分支
$ git branch -d xxx
$ git branch -D xxx(强制删除分支)
注意: 不能删除正在运行的分支
删除远程分支
$ git push origin --delete xxx
修改文件名
$ git mv aaa.html bbb.html
移动文件到指定的位置
// 移动文件xx.html到test文件夹下
$ git mv xx.html test
文件有变化时查看文件前后的变化
$ git log --pretty=oneline xxx.html
(1)此时会出现一个关于这个文件的commit id
(2)根据commit id查看谁修改的,修改的内容
$ git show commit-ID
// 查看具体的修改的内容
$ git log -p xxx.html
合并分支
$ git checkout master //切换回master
$ git pull // 从master分支拉取代码
$ git merge dev //dev分支的内容合并到master分支
$ git add .
$ git commit -m "xxx"
$ git push //代码提到库中
遇到冲突的分支合并
// 第一种方法
$ git status // 合并冲突后的任意时刻使用 git status 命令来查看那些因包含合并冲突而处于未合并(unmerged)状态的文件
$ git add // 解决了所有文件里的冲突之后,对每个文件使用 git add 命令来将其标记为冲突已解决
// 第二种方法(推荐)
$ git merge --abort (保留当前分支的代码)
// 第三种方法(手动)
冲突提示语1:采用当前更改
冲突提示语2:采用传入的更改
冲突提示语3:保留双方更改
冲突提示语4:比较更改
提交代码到版本库
$ git status // 查看当前的版本库的状态
$ git add . // 添加所有文件到版本库
$ git commit -m "xxxx" // 把xxxx代码提交到代码库
$ git log // 查看是否完成提交
提交代码不提交node-modules
首先,在项目目录下打开git Bash Here,输入命令:touch .gitignore
完成后项目中会出现一个后缀名“.gitignore”为的文件。
打开该文件,查看生成文件的时候是否已经自动配置好了
.DS_Store
node_modules/
unpackage/
dist/
package-lock.json
yarn.lock
# local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Editor directories and files
.project
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw*