还记得当初刚接触git的时候因为操作不当,提交了错误代码上去git仓库,被叼飞起,因此平时工作遇到错误都做下笔记,最近有空就整理下分享出来,以便以后复习,要是有错还望指正。
这是前段时间应别人做的入门笔记:http://blog.youkuaiyun.com/github_38117599/article/details/69870119
1.前言:工作中使用git说简单也简单,说难也难;简单是指工作中可以简单的使用git命令,避免出错;而难是指git命令使用非常多,多个可以出一本几百页的书了;这里我就总结下我工作中git的使用。
2.简单使用git方式
(1)通常对于比较大的项目,代码一般放在服务器上,比如做手机系统;而自己电脑上则放单独的模块,进行修改,修改同步到远程服务进行编译,最后提交到git仓库。
在这里只分本地和git仓库两部分
(2)在本地,自己的工作区间放两份代码,一份专门用于修改(这里称之为“本地A”),另一份则专门用于提交到git仓库(这里称之为“本地B”)。
(3)对“本地A”操作为:
当出现重大修改之后,想复原进行重新修改
(4)对“本地B”进行操作:
3.只使用一份本地代码
(1)使用一份代码就行修改,编译,提交的过程相隔过长,经常会导致修改完代码之后,别人已经进行了多次的修改和提交,特别是同一个文件,共同操作会产生冲突,所以使用两部分代码就行操作会大大的降低了冲突的风险。
(2)对一份本地代码进行操作过程
4.提交过程常见的错误
从 git pull 到 git push 尽量快速完成,避免中途有人又提交了代码,产生冲突等不必要的麻烦
(1)git pull出错
//1.把自己的代码放到stash区;
git stash
//2.把最新的代码拉下来
git pull
//3.看共同修改的文件,需不需要商量如何处理相同修改的代码
(2)git add出错
//1.撤销所有的已经add的文件:
git reset HEAD .
//2.撤销某个文件或文件夹:
git reset HEAD filename
(3)git commit出错
//1.查看提交的信息
git log
//会看到以下的一下信息
commit commit_id
Merge:
Author:
Date:
//2.回退到上一个节点,也就是回退到上一个 提交的节点 代码还是原来你修改的
git reset commit_id
//或者,回退到上一个commit节点, 代码也发生了改变,变成上一次的
git reset –hard commit_id
(4)远程分支提交错误
//查看本地分支与远程分支的关联关系(如果不是要切换回来)
git branch -vv
5.其他常用的git命令
(1)git stash的使用
//1.备份当前工作区的修改与暂存区到堆栈区(未完结变更区,不是暂存区)中,将工作区恢复到上一次提交时的状态,
git stash
//2.将上一次存到暂存区的文件读取回工作区,git stash apply stash@{1}回到第几个暂存的状态
git stash pop
//3. 查看暂存区暂存的状况
git stash list
//4.清空暂存区
git stash clear
(2)查看当前所在分支
git branch -a
(3)commit之后没有push,导致不能pull,解决:
git reset HEAD~1
(4)新建分支
git branch 分支名
(5)切换到该分支下
git checkout 分支名
(6)创建本地local_branch分支(-b后面),并且对应远程分支remote_branch(/后面),并且切换到该分支下面
//为了要区分对应关系,remote_branch和local_branch取名应该相同
git checkout origin/remote_branch -b local_branch
(7)强制删除该分支
git branch -D 分支名
(8)commit之后没有push,修改注释
//1.使用这个修改上次的提交
git commit --amend
//2.然后按Ctrl + o (WriteOut)
//3.然后按回车保存,回到上一个界面后按 Ctrl + x 退出即可。
//4.最后,你就可以放心的 push 到远程分支啦
(9)删除远程的文件夹/文件
//1.删除a目录下的2.txt文件
git rm -r --cached a/2.txt
//或删除a文件夹,包括里面的文件
git rm -r --cached a
//2.commit
git commit -sm "[feature][logic][content][no id][untestable]"
//3.push
git push origin 分支名