Git常用命令整理
前言:
Git是目前流行的版本控制工具,或者项目管理工具,多个人共同开发维护一个项目的时候,如何协调同步工作就可以用到Git。
作为分布式的版本控制工具,每个人那里都有一份完整的项目,每个人可以修改自己的那份项目,它可以记录你的最新修改,改瞎了也能回退到原来的版本,修改之后,别人如何获取其他人的修改合并后的最新版本项目,可以所有人两两相互推送,麻烦~
图一
但是,如果有个充当中间交换的电脑或者服务器,就简单多了~
图二
你可否听说过GitHub或者码云?他们就可以充当中间交换者方便开发维护者交换推送最新版本的项目。
那这样的话,每个开发人员修改了项目,然后推送到“中央服务器”(也就是上图红色圈圈,也就是GitHub或者码云等),然后团队其他人就可以通过这个“中央服务器”获取最新项目了。
大概呢就这么个意思,听说过集中式版本管理的同学可能疑惑,图二说的不就是集中式嘛,简单说,像Git这种分布式的,没有图二的这种所谓“中央服务器”,也能活,用图一的方式呗,而集中式,他是真有个中央服务器,没了就死了,具体的话可以看看廖雪峰老师Git教程:https://www.liaoxuefeng.com/wiki/896043488029600/896067008724000
我就单纯整理一下常用的Git命令便于以后使用
创建版本管理仓库
意思就是你原来有个项目,或者你现在新建了个项目,你要用Git管理它,怎么开始呢
1.进入根目录
git init
这样,你的项目就是一个用Git管理的项目了,也可以亲切的叫它仓库
修改代码后提交
必然是用的最多的命令
分两步
git add <file>
git commit -m "写上修改说明"
表示的是修改的文件的文件名,下面一句是提交到仓库
当然也可以一下子把所有修改的文件全加上提交,就这么干:
git add .
git commit -m "写上修改说明"
注意:所有的版本控制系统,只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB,但到底改了啥,版本控制系统不知道。Microsoft的Word格式是二进制格式
查看当前Git状态或者你上次到底修改了啥
git status //用的比较多
git diff //目前还没咋用过,不过确实是个有用的命令
已经git commit了,直接把项目内容回到上一个版本
git reset --hard HEAD^
HEAD是个指针指向当前最新版本,HEAD^就是上一版本
已经git commit 了,单纯只撤销commit操作,回到刚刚add后的状态
git reset --soft HEAD^
已经git add .了还没commit,想撤销所有的add
git reset .
已经git add .了还没commit,想撤销某个特定文件
git rm --cached <file>
以上是在本地仓库操作的一些常用命令
添加远程仓库
git remote add origin git@server-name:path/repo-name.git
origin是给远程仓库起的名字
后面是仓库地址
查看远程仓库
git remote
可以加个-v参数以查看更详细信息
删除远程仓库
git remote rm 远程仓库的名
将远程仓库最新内容合并到本地
git pull
从本地向远程仓库推送最新修改
第一次推送加-u参数
git push -u origin master
之后
git push origin master
向多个远程仓库同步项目
git remote add gitlaborigin 地址
git push -u origin master # 向第一个远程仓库推送
git push -u gitlaborigin master # 向第二个远程仓库推送
直接从远程克隆一个项目到本地
git clone 地址
创建合并分支
创建dev分支
git branch dev
切换到dev分支
git switch dev
将dev分支的修改合并到master分支
git switch master
git merge dev
删除dev分支
git branch -d dev