Git使用技巧
1,从远程获取最新版本到本地
git fetch origin master:tmp
git fetch origin master:temp 这句命令的意思是:从远程的origin仓库的master分支下载到本地并新建一个分支tmp
2,比较代码
git diff temp
3, 合并tmp分支到master分支
git merge tmp
4,删除tmp分支
git branch -d tmp
如果该分支没有合并到主分支会报错,可以用以下命令强制删除git branch -D <分支名>
the_commit_id的获取方式: gitlog查看commitid
【远程代码库回滚】:
这个是重点要说的内容,过程比本地回滚要复杂
原理:先将本地分支退回到某个commit,删除远程分支,再重新push本地分支
操作步骤:
1、git checkout the_branch
2、git pull
3、git branch the_branch_backup//备份一下这个分支当前的情况
4、git reset --hard the_commit_id//把the_branch本地回滚到the_commit_id
5、git push origin :the_branch //删除远程the_branch
6、git push origin the_branch //用回滚后的本地分支重新建立远程分支
7、git push origin :the_branch_backup //如果前面都成功了,删除这个备份分支
二、git常见错误
CONFLICT(content):Merge conflict in XXXX/.DS_Store.
AutoMatic mergefailed;fix conflicts and thencommit the result.
意思是:
冲突内容:合并冲突在 XXXX.DS_Store文件中
自动合并失败;修改冲突然后提交修改后的结果。
git pull的时候:
自动合并失败,这个时候需要去代码中找到冲突的地方,然后分析原因去修改,合并失败的时候一般工程中会有错误提示,如图:
<<<<<<<< HEAD
你写的代码
===============
别人写的代码
>>>>>>>>>>>>>>>sdhqd128dqwenasjdq
这种冲突首先先分析你们俩个的代码是实现相同功能而写的重复的代码还是各自实现的不同的功能的代码。如果是重复代码:两个二选一删除一个,然后再把这些冲突标示符删除即可;
如果不是重复代码,两个都需要保留,只把冲突符号(红色部分)删除即可。
工程编译通过之后就可以重新提交了,这个时候还需要从头执行:
修改完成后还是:
1.2.1git add .
1.2.2git commit -m “给你的保存起一个名字"
1.2.3git pull 把服务器代码拉下来跟你本地代码合并
1.2.4 git push 把合并好的最新代码推送到服务器端
2、git error'commit' is not possible because you have unmerged files
手工编辑好conflict之后再add,再commit,再push。
D:\wamp\www\TMS\tms>git add view\login.html
D:\wamp\www\TMS\tms>git commit -m 'login.html'
[master d0e560d] 'login.html'
D:\wamp\www\TMS\tms>git push