常用 Git 命令
常用 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