git操作
2015-12-16 11:16 孤独大兔子 阅读(157) 评论(0) 收藏 举报一、切换到master分支,并快进式同步到本地工作区
git checkout master 从公共分支上拉取
git fetch origin -p
git pull --ff-only
//git pull origin master 更新master分支到最新的代码 [可选]
二、切换到分支
1、如果新项目,创建分支
git checkout -b lizhe_shengdanjie(拥有者+功能) -b表示创建并切换,相当于 git branch lizhe_shengdanjie ; git checkout lizhe_shengdanjie 两条命令
2、如果已创建过分支
$ git checkout lizhe_shengdanjie
$ git merge master 合并master到feature分支
----------------------以上如果有工作或正在进行的工作按顺序执行一遍-------------------------------------
三、修改提交
git add XXXX.php(文件名) (把提交放到暂存区Stage)
git commit -m "描述" (一次性把暂存区的所有修改提交到分支)
git push -u origin lizhe_shengdanjie 推送到自己分支或master上(本地库的所有内容推送到远程库上)
四、删除分支
git branch -d lizhe_shengdanjie 删除本地分支
git push origin :lizhe_shengdanjie 删除远端分支
其他
掌握仓库当前的状态
git status
查看修改内容
git diff +文件名
历史记录
git log
3628164...882e1e0的是commit id(版本号) 如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数
把当前版本回退到上一个版本
$ git reset --hard HEAD^ (HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,上100个版本HEAD~100)
会退后会被版本库删除,只要命令行窗口还没有被关掉,可以找到版本的commit id 是3628164...,指定回到未来的某个版本:
$ git reset --hard 3628164
记录你的每一次命令
git reflog
丢弃工作区的修改 如果你搞乱了工作区某个文件的内容,想直接丢弃工作区的修改时
git checkout -- file
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。
把暂存区的修改撤销掉(unstage) 当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
git reset HEAD file
删除文件
rm 文件名
这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了,git status命令会立刻告诉你哪些文件被删除了:
现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit:现在,文件就从版本库中被删除了。
$ git rm test.txt
另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:
$ git checkout -- test.txt
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
集中式vs分布式
svn:集中式
版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。
git:分布式
分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,各自的修改推送给对方,就可以互相看到对方的修改了
常用命令
Git常用命令整理
mkdir: XX (创建一个空目录 XX指目录名)
pwd: 显示当前目录的路径。
git init 把当前的目录变成可以管理的git仓库,生成隐藏.git文件。
git add XX 把xx文件添加到暂存区去。
git commit –m “XX” 提交文件 –m 后面的是注释。
git status 查看仓库状态
git diff XX 查看XX文件修改了那些内容
git log 查看历史记录
git reset –hard HEAD^ 或者 git reset –hard HEAD~ 回退到上一个版本
(如果想回退到100个版本,使用git reset –hard HEAD~100 )
cat XX 查看XX文件内容
git reflog 查看历史记录的版本号id
git checkout — XX 把XX文件在工作区的修改全部撤销。
git rm XX 删除XX文件
git remote add origin https://github.com/tugenhua0707/testgit 关联一个远程库
git push –u(第一次要用-u 以后不需要) origin master 把当前master分支推送到远程库
git clone https://github.com/tugenhua0707/testgit 从远程库中克隆
git checkout –b dev 创建dev分支 并切换到dev分支上
git branch 查看当前所有的分支
git checkout master 切换回master分支
git merge dev 在当前的分支上合并dev分支
git branch –d dev 删除dev分支
git branch name 创建分支
git stash 把当前的工作隐藏起来 等以后恢复现场后继续工作
git stash list 查看所有被隐藏的文件列表
git stash apply 恢复被隐藏的文件,但是内容不删除
git stash drop 删除文件
git stash pop 恢复文件的同时 也删除文件
git remote 查看远程库的信息
git remote –v 查看远程库的详细信息
git push origin master Git会把master分支推送到远程库对应的远程分支上
浙公网安备 33010602011771号