20 10 2020

Git简介

GIT,全称是分布式版本控制系统,git通常在编程中会用到,并且git支持分布式部署,可以有效、高速的处理从很小到非常大的项目版本管理。分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。


Git提交更新代码具体步骤

//1.检查是否有可提交的文件
$ git status//(显示为Modified,则为修改的文件)

//2.拉取更新服务器代码(防止冲突)
$ git pull origin master

//3.添加所有提交的文件至缓存
$ git add .//(意思是将你本地所有修改了的文件添加到暂存区)(.代表全部,也可以只提交单个文件,格式:$ git add 文件名 可以用空格分隔,指定上传多个文件)

//4.提交暂存区的文件
$ git commit -m “提交内容的注释”//“”里面的内容是提交说明(否则不允许提交)

//5.上传到远程仓库
$ git push origin master

部分命令整理

1.版本回滚

$ git log : 显示从最近到最远的提交日志

$ git reset --hard commitID : 回滚到某个版本

$ git reflog : 记录你的每一次命令

$ git push -f -u origin master : 提交回滚后的版本


2.撤销更改

$ git checkout -- file : 可以丢弃工作区的修改

$ git reset HEAD file : 可以把暂存区的修改撤销掉(unstage)

3.下载远程仓库(含有对方的.git文件夹)

$ git clone xx : 下载远程仓库(含有.git)

4.查看当前仓库的状态

$ git status    //查看版本库状态,什么被修改过但还没提交的

$ git diff      //查看当前相对上一次提交修改的内容

5.撤销修改

$ git checkout -- test.html

6.删除文件

$ rm test.index     //可直接在文件管理中删除文件,要不用rm 命令去删除

$ git rm test.html    //从版本库中删除

$ git commit -m '删除 test.html文件'

$ git branch -D      //丢弃一个没有被合并过的分支,可以通过强行删除。

7.解决冲突:

同一文件修改冲突,需要手动解决冲突后再提交。git status可查看冲突,根据标记可修改冲突部分,修改结束后再重新提交。

$ git pull         //拉取远程内容

$ git log --graph        //命令可以看到分支合并图。

8.改变Git颜色

$ git config --global color.ui true

9.分支

$ git branch : 列出所有分支

$ git branch  : 创建分支

$ git checkout  : 切换分支

$ git checkout -b xx : 创建并且切换到xx分支

$ git merge  : 合并到当前分支

$ git branch -d  : 删除分支

$ git log --graph : 查看分支合并图

$ 合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并

10.Bug分支

$ git stash : 把当前工作现场“储藏”起来

$ git stash list : 查看工作现场列表

$ git stash apply : 恢复-> 恢复后-> stash内容并不删除

$ git stash drop : 删除工作现场的内容

$ git stash pop : 恢复的同时把stash内容也删了

11.Tag标签

$ git tag  : 用于新建一个标签

$ git tag -a  -m xxx : 可以指定标签信息

$ git tag -s  -m xxx : 可以用PGP签名标签

$ git tag : 查看所有标签

$ git push origin  : 推送一个本地标签

$ git push origin --tags : 推送全部未推送过的本地标签

$ git tag -d  : 可以删除一个本地标签

$ git push origin :refs/tags/ : 可以删除一个远程标签


Git提交遇到错误后怎么保留修改同时更新呢

git stash的时候会把你本地快照,然后git pull 就不会阻止你了,pull完之后这时你的代码并没有保留你的修改。

git stash   
git pull origin master  

git stash pop

这时候执行git stash pop你去本地看会发现发生冲突的本地修改还在,这时候你该commit push啥的就悉听尊便了。

如果不想保留本地的修改,那好办。直接将本地的状态恢复到上一个commit id 。然后用远程的代码直接覆盖本地就好了。

git reset --hard 
git pull origin master

延伸阅读
  1. QQ互联对接踩坑
  2. .Net常用中间件
发表评论