实战经验告诉你,记住Git这些操作,不小心犯浑也不怕

276 阅读2分钟

Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理,是目前使用范围最广的版本管理工具。

一、Git的工作原理

二、Windows上安装Git

一般我们工作的电脑都是Windows系统,要使用git首先要进行安装。从软件管家或者其他平台找到git的安装包,下载后默认安装即可。

安装后,鼠标右击可以看到:

git gui here 直译过来的意思就是 (GUI配置)克隆git库

git bash here 直译过来就是 用BASH设置克隆git库操作

三、 Git的配置

配置全局用户:

$ git config --global user.name "用户名"
$ git config --global user.email "git账号"

删除全局配置:

$ git config --global --unset alias.xxx
$ git config --global --unset user.xxx

四、Git 常用命令

注意:括号()表示对前一个单词的说明!!!
当前 git bash 启动位置下面的指定文件,克隆分支到本地:
$ git clone  URL(远程的url)
查看工作区和暂存区的状态:
$ git status
查看文件修改的内容:
$ git diff 
将工作区的文件提交到暂存区:
$ git add . 
提交到本地仓库:
$ git commit -m '本次提交说明'
add和commit的合并,便捷写法(未追踪的文件无法直接提交到暂存区/本地仓库):
$ git commit -am '本次提交说明'
将本地分支和远程分支进行关联:
$ git push -u origin branchName(当前分支名)
将本地仓库的文件推送到远程分支:
$ git push
获得历史修改记录
$ git log
使记录只显示主要的内容,一行显示:
$ git log --pretty=oneline
拉取远程分支的代码:
$ git pull origin branchName(当前分支名)
合并分支:
$ git merge branchName(需要合并过来的分支)
查看本地拥有哪些分支:
$ git branch 
创建分支:
$ git branch branchName(分支名)
切换分支:
$ git checkout branchName(想切换编码的分支)
删除一个已被终止的分支:
$ git branch -d <branch_name>
删除一个正打开的分支:
$ git branch -D <branch_name>
恢复被删除分支 <hash_val>是散列值,用git reflog查看:
$ git  branch <branch_name> <hash_val>  (git branch <branch_name> HEAD@{4})
显示整个本地仓储的commit,包括所有branch的commit,甚至包括已经撤销的commit:
$ git reflog 
丢弃工作区的修改:
$ git checkout -- readme.txt

五、Git版本回退方法

方法一:

   1.远程找到commit id

123dcfaa4560b6b2e5cbbb9c0sddrrgg

   2. Git命令 回退到某个版本命令

$ git reset --hard 123dcfaa4560b6b2e5cbbb9c0sddrrgg

   3.强制提交可能会失败(需要解决对应分支的保护状态):

$ git push -f -u origin branchName(分支名) 或者
$ git push origin branchName(分支名) --force

方法二:

  1.还没合并或者修改之前打个tag,为了说明清楚可以用后者命令打tag

$ git tag tagName(标记) 或者
$ git tag -a tagName(标记) -m "my tag"

  2.tag进行回滚

$ git reset --hard tagName(标记)

  3.强制提交可能会失败(需要解决对应分支的保护状态):

$ git push -f -u origin branchName(分支名) 或者
$ git push origin branchName(分支名) --force

六、git撤销修改(未git add和已git add的内容的内容回退)

1.查看当前提交状态

git status  看当前是在工作区还是暂存区  

2.假设当前是暂存区,先变为工作区

git  reset HEAD -- readme.txt(需要回退文件)

3.工作区丢弃修改(git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令),执行以下命令,文件就被删除了

git checkout -- readme.txt