以前用的svn,换成git很不习惯,学习学习。
直接上干货,不废话!
git clone 仓库地址 克隆
git add 文件名(.) git add . 添加
git commit -m '说明' 提交
git pull 更新
git push 推送
例子:
设置用户,只需要做一次这个设置
git config --global user.name "xxx"
git config --global user.email "xxx.com@gmail.com"
注:如果传递了 --global 选项,Git将总是会使用该信息来处理在系统中所做的一切操作。
如果希望在一个特定的项目中使用不同的名称或e-mail地址,可以去除--global。
检查配置
git config --list
clone
git clone http://git.xxx.net/xxx/git-start.git
将add的文件添加注释并且提交到代码仓库
git commit -m '这里是注释'
commit一次完成
git add . && git commit -m '提交说明' && git push
每天更新代码(develop)
git pull origin master
git fetch origin
git rebase origin/master
从分支dev上更新本地的代码
git pull origin dev:master
查看当前仓库状态。会提示那些文件发生修改,哪些内容需要add&commit。
git status
切换到自己分支提交
git checkout test
git add .
git commit -m "说明"
git checkout master
git push origin master:test
丢弃本次代码修改,必须有--,不然就成检出了
git checkout -- xxx.php
已经使用了git add缓存了代码
git reset HEAD xxx.php
git checkout -- xxx.php
已经用git commit提交了代码
git reset --hard HEAD^ //回退到上一次commit的状态
git reset --hard commitid //回退到任意版本
查看所有分支
git branch --all
//默认只有master分支,所以会看到如下两个分支master[本地主分支] origin/master[远程主分支]
//新克隆下来的代码默认master和origin/master是关联的,也就是他们的代码保持同步
创建本地分支
git branch dev
git branch //查看分支
//这是会看到master和dev,而且master上会有一个星号。这个时候dev是一个本地分支,远程仓库不知道它的存在,本地分支可以不同步到远程仓库,我们可以在dev开发,然后merge到master,使用master同步代码,当然也可以同步
同步dev分支的代码到远程服务器
git push origin dev:dev
这样远程仓库也有一个dev分支了
在dev分支开发代码
git checkout dev
切换到dev分支进行开发
开发代码之后,我们有两个选择
第一个:如果功能开发完成了,可以合并主分支
git checkout master //切换到主分支
git merge dev //把dev分支的更改和master合并
git push //提交主分支代码远程
git checkout dev //切换到dev远程分支
git push //提交dev分支到远程
第二个:如果功能没有完成,可以直接推送
git push //提交到dev远程分支。注意:在分支切换之前最好先commit全部的改变
删除远程分支
git push origin :dev //删除远程dev分支,危险命令
删除本地分支
git checkout master //切换到master分支
git branch -d dev //删除本地dev分支
移除文件
git rm xx.php
git rm log/\*.log //删除log目录下扩展名为 .log 的所有文件
git rm \*~ //删除以 ~ 结尾的所有文件
移动文件
git mv file_from file_to
//Git 并不显式跟踪文件移动操作,所以以改名的方式进行,相当于以下:
mv README.md README
git rm README.md
git add README
查看历史记录
git log
git log -p //用来显示每次提交的内容差异。P=1,2...
撤消操作
git commit -m '说明'
git add forgotten_file //被遗忘的提交
git commit --amend //最终你只会有一个提交,第二次提交将代替第一次提交的结果。
取消暂存的文件
git reset HEAD <file>
网友评论