Git status | 多用命令查看状态,根据状态处理 |
修改代码,先建分支,在分支中修改并直接在分支中add,commit,push即可
1 Git checkout -b dev | 创建并跳转到分支 |
2 在分支中修改代码 | idea |
3 git add readme.txt | 在分支中add |
4 git commit -m "modify" | 第一次修改commit(分之中) |
4 git commit --amend "modify" | 第二次及以后修改commit |
5 git push origin Head:refs/for/master | 在分支中push |
6 在网页my->changes中提交修改 | +1后,添加reveicer,并reply |
目录
一、Demo
新建文件:
Git add readme.txt | 添加到暂存区(.git中的stage) |
Git commit -m "new readme.txt" | 把文件提交到本地仓库(.git中的master分支) |
修改过后:
Git add readme.txt | 再次添加到暂存区 |
Git status | 提交之前先看一下文件状态 |
Git commit -m "update readme.txt" | 再次把文件提交到本地仓库 |
二、版本回退
Git log | 查看历史记录 |
Git reflog | 获取历史版本号 |
Git log-pretty=oneline | 查看历史记录简化版 |
Git reset --hard HEAD^ | 回退到上一个版本 |
Git reset --hard HEAD~100 | 回退到前100个版本 |
Git reset --hard 6fcfc89 | 根据历史版本号恢复数据 |
三、工作区和暂存区的区别
工作区:就是你在电脑上看到的目录,比如目录下testgit里的文件(.git隐藏目录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区范畴。
版本库(Repository):工作区有一个隐藏目录.git,这个不属于工作区,这是版本库。其中版本库里面存了很多东西,其中最重要的就是stage(暂存区),还有Git为我们自动创建了第一个分支master,以及指向master的一个指针HEAD。
来自 <http://www.cnblogs.com/tugenhua0707/p/4050072.html>
四、撤销修改和删除文件
Git checkout --readme.txt | 撤销上次工作区的修改(回到stage的状态) |
Rm a.txt | 用命令删掉文件(假如已经add,可以commit提交继续删掉,或者chectout 恢复) |
五、远程仓库
注册github账号--创建ssh key --登录github --add key --添加远程仓库 --
当远程和本地仓库建立连接后,执行:
Git push origin master | 将本地master分支上的最新修改推送到github上 |
Git clone https://github.com/icehz0/testgit.git | 从远程仓库克隆到本地仓库 |
六、创建于合并分支
HEAD指向当前分支(即主分支master)
Git branch | 查看分支 |
Git branch name | 创建分支 |
Git checkout name | 切换分支 |
Git checkout -b name | 创建并切换分支 |
Git merge name | 合并某分支到当前分支 |
Git branch -d name | 删除分支 |
一般可以先创建分支,然后再修改分支,接着合并分支并删除分支
--解决版本冲突
在分支中修改和在主分支中修改的不一样产生冲突,cat查看并修改后保存
--分支管理策略
Git merge --no-ff -m "注释" dev | 禁用fast forward模式合并分支(不删除分支记录) |
一般master是主分支,是用来发布新版本的,不允许直接在上面操作。
一般新建dev分支,干完活需要发布的时候再合并到主分支上来。
七、bug分支
每个Bug可以通过建立一个临时分支来修复,修复完成后在合并临时分支
Git stash | 将当前的工作现场隐藏起来 |
Git stash list | 查看工作现场状态 |
Git stash apply | 命令恢复工作现场 |
Git stash drop | 删除隐藏的工作现场 |
Git stash pop | 恢复并删除隐藏工作现场 |
Git checkout -b issue-404 | 在master分支上创建临时分支issue-404 |
八、多人协作
远程库的默认名称是origin
Git remote | 查看远程库的信息 |
Git remote -v | 查看远程库的详细信息 |
推送分支
Git push origin master | 将本地分支推送到远程库对应的分支上 |
Git push origin dev | 将dev分支推送到远程 |
master分支是主分支,因此要时刻与远程同步。
一些修复bug分支不需要推送到远程去,可以先合并到主分支上,然后把主分支master推送到远程去。
多人协作工作模式一般是这样的:
- 首先,可以试图用git push origin branch-name推送自己的修改.
- 如果推送失败,则因为远程分支比你的本地更新早,需要先用git pull试图合并。
- 如果合并有冲突,则需要解决冲突,并在本地提交。再用git push origin branch-name推送。
GIT常用命令:
git remote add origin https://github.com/tugenhua0707/testgit | 关联一个远程库 |
git push –u(第一次要用-u 以后不需要) origin master | 把当前master分支推送到远程库 |
git clone https://github.com/tugenhua0707/testgit | 从远程库中克隆 |