Git常见操作
最近想总结下git的各种操作,于是有了这篇博客。
分布式与集中式
首先简单的了解了下分布式与集中式的概念。
集中式
集中式是指版本库都在中央服务器上,任何人想要修改代码都需要先联网,从中央服务器下载代码,然后修改完再推送给中央服务器合并。
集中式的弊端就是必须得联网,如果网速慢就很痛苦。加上由于集中的原因,代码不够安全(没有备份),服务器一旦瘫痪所有人都不能下载。
这边我自己有个疑问,既然都下载了,不应该就有备份了吗?而且分布式推送的时候不也要联网吗?
分布式
分布式是指每个人电脑上都有代码库,两个人只需要将各自的修改推送给对方就能知道对方的代码修改了。(个人理解在企业内部十分方便)假设两台电脑不在一个局域网,就需要一台充当中央服务器的电脑,其存在只是为了方便交换修改代码。
Git常见指令
本地指令
git init 把当前目录变成git可管理的仓库
git add README.txt 把目录下的文件添加到仓库
git commit -m "xxx" 把文件提交到仓库,xxx为备注,可以一次提交多个add的项目
git status 查看当前仓库的状态(告诉你是否有被修改)
git diff xxx 查看xxx的改动
git log (--pretty=oneline)输出提交的历史记录
git reset --hard commit_id 指向某个版本
git reflog 查看命令历史,用来回到未来的版本
git checkout -- file 把file在工作区的修改全部撤销,分为两种情况:修改后还没有提交到暂存区,这时回回到版本库一模一样的状态;提交到暂存区后又作了修改,撤销修改就回到添加到暂存区后的状态。
git reset HAED file 把暂存区最新版本的修改撤销掉,重新放回工作区。
rm file 删除文件
git rm file -> git commit 文件从版本库删除
git checkout file 用版本库里的版本替换工作区的版本
git branch 查看分支
git branch <name> 创建分支
git checkout <name> 切换分支
git checkout -b <name> 创建加切换分支
git merge <name> 合并某分支到当前切换的分支
git branch -d <name> 删除分支
推送指令
在本地learngit仓库以下运行命令:
git remote add origin git@server-name:path/repo-name.git
就能将本地仓库与github的远程仓库关联
git push -u origin master
把本地master推送到远程库,加上-u能在第一次推送顺便关联,以后可以简化参数
git clone 将远程库clone到当前目录下