最近在公司参与的项目从SVN迁移到git上了。毕竟头发短记性差,仅以此文记录常用的git指令。手动捂脸哭…
git和SVN最大的区别是git是分布式的版本控制工具,SVN是集中式的。git的使用者每个人都能有一个自己的版本库,可以先将自己的文件commit到版本库然后再push到分支上。而版本库一般是本地的,所以没有网络也可以先commit。而SVN每次上传都要上传到线上的版本才能替换,否则不能保存。以上区别不保证完全正确,毕竟是土鳖实战派,会用才是王道。
开始
第一步:进行git初始化,在文件内生成.git文件夹
git init
第二步:新建一个文件,可以直接右键新建,也可以用linux命令
git add Readme.md
第三步:
git commit -m "first commit"
git remote add origin https://github.com/hellomrbigshot/Just_a_test.git
这一步需要详细解释。git commit -m “xxx” 用来将你的文件提交到本地库,注意是本地库!还没有上传到远程主机!!!
git remote add 命令用于添加远程主机。这一句将 https://github.com/hellomrbigshot/Just_a_test.git 命名为origin。git remote 命令可以列出所有的远程主机。git remote -v可以参看远程主机的网址。
第四步:将本地库push到远程主机
git push -u origin master
这样最简单的将本地代码push到远程主机的功能就实现了!
之后添加文件或者修改代码,改变之后用
git status
可以看到和本地库不同的内容会以红色呈现。
这时我们要将我们需要提交的文件加入暂存区
git add .
git add d.txt
用.表示全部,输入文件名则只添加某个。
这时候再用git status查看一下状态。可以看到添加到暂存区的文件名变为蓝色。
如果我们要将这个文件从暂存区移除,可以用
git reset HEAD d.txt
git rm --cache d.txt
这两个指令均有这个效果
若是想将这个文件从暂存区移除并删除这个文件,可以用以下指令
git rm -f d.txt
之后用以下指令将文件提交到本地库
git commit -m "some words"
如果我们此时错误地将文件提交到了本地库,可以用以下方式撤销本地库的修改
//仅仅只是撤销已提交的本地库,不会修改暂存区和工作区
git reset --soft 版本库ID
//仅仅只是撤销已提交的本地库和暂存区,不会修改工作区
git reset --mixed 版本库ID
//彻底将工作区、暂存区和本地库记录恢复到指定的本地库
git reset --hard 版本库ID
提交到本地库之后最终将它push到远程主机
git push -u origin master
master也可以是你的分支名
显示提交历史指令如下:
git log -p -2
如果不添加参数, git log 会按提交时间列出所有的更新,最近的更新排在最上面,使用 git log 后按q键退出。参数-2显示最近的两次提交,而-p显示具体的内容差异。
还可以用 git log –stat 显示增改行数统计。
删除文件
可以用linux命令进行删除,或者直接右键删除。linux删除如下:
rm -rf Readme.md
之后将删除保存到暂存区
git rm Readme.md
之后提交到本地库,最后push到远程主机即可。
暂时就想到这么多。先掌握这些就应该满足日常的git使用了吧。。。以后慢慢加!
更新:新建分支和合并分支
新建分支
git branch dev
切换分支
git checkout dev
合并分支
git merge master
这条命令是将master合并到dev,保证dev上的内容是最新的,之后切换到master
git remote master
git merge dev
将dev合并到master,这样dev上的更新就合并到了master上。
最后push一下
git push -u origin master
这样分支上的更新就上传到服务器的master上了。
如果要删除分支,可以用
git branch -d dev