常用git操作(工具类)
说起代码管理方式,就会想起我们常用的Git,svn。git是分布式的管理方式,svn是集中式的管理方式。大部分公司都在用git来管理代码,一起git命令来管理代码吧。
Git与svn区别:
Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库。
![](https://img.haomeiwen.com/i7774763/12279efebb6cdc09.png)
SVN是集中式版本控制系统,版本库是集中放在中央服务器的。
![](https://img.haomeiwen.com/i7774763/16406a69e705c591.jpeg)
常用git命令
一、克隆新项目
git clone git://github.com/schacon/grit.git 从服务器上将代码给拉下来
二、常用操作:
(一)本地分支修改操作:
1、git checkout . #本地所有修改回到原来的状态
2、git checkout -- app/index.html #本地个别修改恢复。
(二)命令行窗口没有关掉时(时光穿梭)
git log 查看历史
git reflog 查看命令历史,以便确定要回到未来的哪个版本。
git reset --hard HEAD^ 恢复上一个版本 ( git reflog )
git reset --hard 3628164
(三)保存改动
git stash 删除并保存改动
git stash pop 恢复改动
(四)修正提交最后一个 commit 消息
git commit --amend 或 git commit --amend -m "Fixes bug #42"
(五)提交master后,如何处理
git push -f 命令去强制提交 (强行推送到远端)(不建议使用)
注:如果已经提交master分支,建议本地分支进行修改,重新提交。
(六)删除远程分支:
git fetch -p 本地删除远程已经删除的分支显示
git branch -a 用来查看远程分支
git push origin :feature/construction 删除远程分支
(七)Git鼓励大量使用分支:
查看分支:git branch
创建分支:git branch
切换分支:git checkout
创建+切换分支:git checkout -b
合并某分支到当前分支:git merge
删除分支:git branch -d
(八)取消一个目录的git初始化
执行rm -rf .git
(九)查看详细的commit信息
git show 2e21737 (git reflog的版本号)
(十)Github使用gitignore忽略增加指定文件。
/node_modules #依赖
/dist #build结果
/.idea #IDE设置目录
/.tmp
/.sass-cache
/bower_components
git rebase和git merge
rebase 的概念/作用其实很简单——就是「变基」。具体来说,就是改变一条分支的「基点」,使原分支从指定的地方(commit)重新长出来。rebase 可以保证commit为一条线。
![](https://img.haomeiwen.com/i7774763/51d4a45864844472.png)
![](https://img.haomeiwen.com/i7774763/5d8e3d216c7d325c.png)
注:git log --graph 提交记录的顺序问题
遇到的坑
1、建议在代码提交之前先git merge develop 与develop进行同步。(减少冲突)
2、如果merge不成功,说明你的代码与别人的代码冲突了。需要怎么搞呢?
1)首先git status 查看本地代码修改情况。
2)通过以下命令,删除与恢复代码。
git stash 删除并保存改动
git stash pop 恢复改动
注:用这个操作,一般都可能药到病除 merge不成功的问题。
3、git push -f 命令去强制提交 (强行推送到远端)(不建议使用)
针对初学git操作的建议
对于git操作不熟悉的同学,建议自己搭个github工程,这样就可以随便玩git命令了。
坑越大,进步就越大。 我也是刚从大坑爬出来的。一起git起来。