Git的基本使用
初始化一个git仓库并上传
.gitignore 创建一个这样的文件表示需要忽略不提交进去的文件
git init
*初始*化一个git仓库
3. ```
git add .
把要提交的文件放到暂存区
git commit -m 第一次上传文件
把暂存区的代码放到远程仓库去
5. ```
git remote add origin 地址
git push -u origin master
#### 查看提交记录
git status
查看当前代码的改动状态
git log
查看全部提交记录
git log --author=‘葡萄’
查看某一个人的提交记录
#### 配置用户名和邮箱
git config --global user.name ‘葡萄’
git config --global user.email ‘9810391@qq.com’
git config --global --list
修改用户名
修改密码
查看配置
## 文件操作
#### 修改文件的操作
git status
查看有哪些文件被修改了
git add demo.js
把修改的文件添加到暂存区
git commit -m 修改文件
把暂存区的文件提交到远程
#### 删除不需要的文件
1.手动删除文件
git add .
把剩余的文件加到暂存区里
git commit -m 手动删除文件
把暂存区的文件提交到远程
2.命令行删除某个文件
git rm demo.js
删除demo.js
git add .
把剩余的文件加到暂存区里
git commit -m 命令行删除文件
把暂存区的文件提交到远程
#### 重命名文件名
1.手动修改文件(把demo2.html修改成home.html)
git add home.html
git rm demo2.html
git commit -m 手动重命名文件
```
把暂存区的文件提交到远程
2.命令行重命名文件名
```
git mv home.html demo2.html
git commit -m 命令行重命名文件
把暂存区的文件提交到远程
#### 移动文件并重命名
*把demo.html移到home文件夹里*
git mv demo.html home
git commit -m 移动文件夹
```
把暂存区的文件提交到远程
*把demo.html移到home文件夹里并且重命名为home.html*
**
```
git mv demo.html home/home.html
git commit -m 移动文件夹
把暂存区的文件提交到远程
#### 文件有变化是如何查看文件的前后变化
查看home文件夹下home.html的变化
1.使用git log
git log --pretty=online home/home.html
得到commit的ID
git show commit的ID
2.查看文件具体修改的内容
git log -p home/demo.html
1.针对单个文件或者改动文件不多的情况下
git diff
找到不同(红色的是改动之前的内容,绿色的是改动之后的内容) /手动改回/
2.使用git checkout 还原到最后一次提交的状态
git status
找到修改的文件
git checkout --home/home.html
把修改的文件还原
#### 不再追踪时,如何撤销追踪操作
/如果我们把文件添加到了暂存区,会自动对文件进行追踪/
git reset HEAD home/home.html
从暂存区中撤销
## 版本问题
#### 想要回到项目上一版本或者指定版本
1.使用^一步一步回退
git reset --hard HEAD^
一个^代表回到上一个版本
几个^代表回退到上几个版本
2.使用commit的ID回退到指定版本(Id可以是全部的,也可以是前几位)
git log
查看之前的版本ID
git reset --hard commit的ID
git checkout commit的ID --version.html
git commit -m 回退指定文件的版本
```#### 修改内容后推送到远程仓库
```
git push origin master
```#### 如何在本地创建标签
```
git tag v1.0
```
创建标签 默认加在最后一次commit上
```
git lag
```
检查标签是否创建成功
```
git tag v0.5 commit的ID
```
把标签加入到指定版本上
```
git push origin v1.0
```
把标签推送到远程仓库
#### 删除标签
```
git tag -d v0.5
```## 分支的操作
#### 创建分支
创建一个名为dev的分支
```
git branch dev
```
检查分支
```
git branch
```
分支前面有**代表当前所在的分支*
排序是按照首字母的顺序排序
#### 切换分支
切换到dev分支
```
git checkout dev
```
创建一个分支,并切换到这个分支
```
git branch -b test
```#### 删除分支
注意:不能删除当前所在的分支
```
git branch -d dev
```
如果在分支上提交了内容也不能删除,可以使用-D强制删除
```
git branch -D dev
```#### 如何正确的合并分支
首先切换到主分支
```
git checkout master
```
把dev分支合并到master上来
```
git merge dev
```#### 解决合并时出现冲突
*我们在不同的分支上修改了同一处的代码*,这个时候git就不知道哪一个是你需要的
1.--abort 直接忽略其他分支的内容,保留当前分支
```
git merge --abort
```
2.手动修改
```
git status
git add .
git commit
git staus
git commit -m 解决冲突之后的代码
```#### 不同人想要查看版本路线
实现简写的查看版本(没有修改的人和时间)只有当前的版本信息
```
git log --oneline
```
查看当前的版本路线
```
git log --oneline --graph
```#### 删除不想要的分支
拉取所有的远程仓库
```
git fetch
```
查看分支
```
git branch -av
```
删除summer分支
```
git push origin --delete summer
```#### 不同的人修改了不同的代码
查看远程的仓库
```
git branch -av
```
合并另一个开发出修改的代码
```
git merge origin/test
git push
本地模仿第二个人修改代码
git clone 地址 文件夹名字
git config --add --local user.name '葡萄'
git config --add --local user.email '9810391@qq.com'
git config --local --list
```
查看本地分支与远程分支的关系
```
git branch -av
```
切换到test分支上来,并且test分支已经与远程分支做了关联
```
git checkout -b test remotes/origin/test
```
把远端的分支都拉去下来
```
git fetch
```