常用 Git 命令

Git 和 svn 都是版本控制工具,区别是SVN是集成式的,git是分布式,总的来说,git在多人合作上的优势大于SVN,

克隆项目:

进入到要克隆的文件夹下:

git clone url  (github 上要克隆项目的URL)

设置提交代码的用户和邮箱: 最好和github 上的一致

先进入项目中,

ProjectName [master] > git config user.name “pengyouyi”
ProjectName [master] > git config user.email “2390803922@qq.com”

查看项目的作者:

ProjectName [master] > git config user.name

查看所有的:

ProjectName [master] > git config –list

Git 的三个区:

✮ 工作区:

✮ 暂存区: –作为过渡层 –避免误操作 –保护工作区和版本区 –分支处理
✮ 版本区:

查看工作区的所有文件:

Git status

把工作区的内容添加到暂存区:

\protectName [master] >git add demo.html

提示内容

\protectName [ master  +1  ~0  -0 : +1  ~0  -0  ! ]   

意思:红色代表工作区,+1 有1个文件可以被移动,~0代表被修改的文件数目,-0代表被删除的文件数目

绿色代表暂存区,参数同工作区

Git add . 把所有修改后的文件重新添加到暂存区

把暂存区的内容添加到版本库中:

\protectName [ master  +2  ~0  -0 ]  > git commit

会弹出一个记事本要求填写注释,让它不谈注释,直接写注释

\protectName [ master  +2  ~0  -0 ]  > git commit –m “change demo1”

工作区不能跳过暂存区直接提交到版本库,但是有一种简写方式

Git commit –a –m “add js”

Git 命令

对比:

	Git diff 工作区和暂存区对比
	Git diff –cached (--staged)  暂存区和版本库对比
	Git diff master  工作区和版本库对比

撤销:

	Git reset Head drag.js  从缓存区撤销到工作区
	Git checkout - -  filename  从工作区撤回到版本库
	Git commit – amend  从暂存区撤销到版本库, 合并一次新的提交方案
例如:git commit –m “change3 drag.js and demo.js” –amend 撤销上一次的提交,重新再提交一次

删除:

	Git rm filename  删除缓存区的文件,但是删除的时候要先在工作区中删除
	Git rm –f test.txt  删除缓存区的文件,也强行删除了工作区中的文件
  Git rm – cached  test.txt  删除缓存区的文件,不删除 工作区中的文件

恢复:

Git checkout  id filename  恢复工作区中指定的某个文件(删除的某个文件)
Git reset –hard id  恢复某个指定的版本,可以是对多个文件同时的操作
Git reset –hard HEAD^  指针往回走一步,
Git reset –hard HEAD~2  往回走两个版本,扩展到N
Git reflog 打印对版本的操作记录,其中的ID可用于回到现在的某个版本

推送到远程:

Git remote   查看远程仓库的名称 ,默认 origin
Git remote  查看远程地址
Git push origin master   推送

多人协作解决冲突:

拉取

Git fetch  拉取下来的与自己的不合并
Git pull  拉取下来的与自己的自动合并

方式Git fetch:

先用git fetch 拉取下来,

然后对比 git diff master origin/master 有冲突的部分就会被显示出来 红色表示本地,绿色表示远程

Git merge origin/master 有冲突的地方,两个不同的都会显示在本地文件夹下,然后手动选择处理,取舍自己的还是别人的。

处理好冲突后,git commit –a –m “add style by pengyouyi to demo1”

最后Git push origin master 远端

方式Git pull:

Git pull origin master 从远端拉下,发现冲突

直接git pull 会同步,本地会被拉取下来的文件覆盖

当想要参与到别人的项目而没有权限的时候,该如何做:

Folk:

先搜索到作者,然后找到要想参与的项目,,点击右上角fork ,就把项目克隆到自己的与户名下了。

Pull request:

修改者改好之后可以pull request ,交给有权限的人处理,是否可以通过merge,‘

也可以不拉到本地,在github上直接进行修改

删除从别的地方folk过来的项目,

进入要删除的项目中,右下角设置,最下面按钮Delete this repository ,在弹窗中输入要删除的镜像 仓库的名字,点击删除

分支:

ProfileName > git branch  查看分支
ProfileName > git branch   branchName    创建分支
ProfileName > git checkout branchName   切换到某个分支
ProfileName > git checkout –b  branchName   创建某个分支并切换到它上面去(-b branch简写 )
ProfileName > git merge branchName 在主分支上合并其他分支,会将其他分支上的修改直接反应到主分支上
ProfileName > git branch  --merged  查看被合并的分支
ProfileName > git branch  --no –merged   查看未被合并的分支
ProfileName > git branch –d branchName  若与主分支合并了,则可将其删除
ProfileName > git branch –D  branchName  若未与主分支合并,也可将其强行 删除

打标签:

ProfileName > git tag   查看打的标签
ProfileName > git tag  tagName    打一个标签
ProfileName > git push origin   v1.0

http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html

git多人协作