git杂记

说明:本文只是记录了部分重点操作,强烈建议开源在线的:《Pro Git中文版》

通过git命令下载指定分支代码

git clone -b 分支名 仓库地址
例如:git clone -b v2.8.1 https://git.oschina.net/oschina/android-app.git

git 代码提交

代码提交一般有五个步骤:
1.查看目前代码的修改状态
2.查看代码修改内容
3.暂存需要提交的文件
4.提交已暂存的文件
5.同步到服务器

1)、查看目前代码的修改状态 git status
2)、查看代码修改内容 git diff
3)、暂存需要提交的文件,这一块比较重要
如果是新建的文件
则git add

如果是修改的文件
则git add

如果是删除的文件
则 git rm
显然,使用git add当文件比较多的时候,这样一个一个操作是很麻烦的,这时可以用以下几个命令:
git add -u [ ]: 把 中所有tracked文件中被修改过或已删除文件的信息添加到索引库。它不会处理untracted的文件。
省略 表示.,即当前目录。
git add -A: [ ]表示把 中所有tracked文件中被修改过或已删除文件和所有untracted的文件信息添加到索引库。
省略 表示.,即当前目录。
git add . :他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。

注意:这几个命令都是相对于当前目录的,所以如果在要目录下操作,就是针对所有文件,最好是切换到工作子目录,就不会把那些无关紧要的文件添加进去。

4)、提交已经暂存的文件 git commit -m ‘message’
5)、同步到服务器
同步到服务器前先需要将服务器代码同步到本地
命令: git pull
如果执行失败,就按照提示还原有冲突的文件,然后再次尝试同步。
命令:git checkout – <有冲突的文件路径>
同步到服务器
命令: git push origin <本地分支名>
如果执行失败,一般是没有将服务器代码同步到本地导致的,先执行上面的git pull命令。

git代码合并到主分支

1、先切换到主分支 git checkout master。
2、别人可能修改了代码,所以先拉下来 git pull。
3、merge之前 开发的 git merge --squash boxiao.wpl,squash意思是开发分支里面commit很多次,我们直接把代码合过来,message信息不要。(注意–squash 前面是两个连续的-)
4、提交 git commit -a -m ‘your message’。
5、上传 git push。

删除不需要提交的文件

如果已经提交过,使用$ git rm --cached .idea/workspace.xml 其中workspace.xml是你的文件。然后再使用git commit 和git push就以从本地仓库和远程仓库删除文件了。
git rm --cached 和git rm 的区别是git rm 连本地文件也删除了而git rm --cached只删除git的跟踪。

删除分支

1、删除本地分支
删除本地分支前需要先切换到其他分支
git branch -d XX,如果本地有代码没提交,会提示:he branch XXX is not fully merged。解决方法:使用大写的D 强制删除 git branch -D XXX
2、删除远程分支
删除本地分支后,再使用 git push origin :XXXX

打印git diff文件

1、打印出git log
2、找出需要对比的两个版本号
3、git diff -U5000 versionid1 versionid2 > file.diff
-U5000表示打印上下文

如果两个版本间的文件差别太大,可以指定文件或者文件夹来打印diff,
比如 git diff versionid1 versionid2 ./folder1/ ./folder2 > file.diff

###git远程删除分支后,本地git branch -a 依然能看到的解决办法。
git remote prune origin
参考:http://blog.csdn.net/qq_16885135/article/details/52777871

合并多个 Commit

参考:
1、https://www.cnblogs.com/tocy/p/git-rebase-merge-commit.html
2、http://blog.csdn.net/yangcs2009/article/details/47166361
参考1中是标准步骤,如果有冲突,可以使用参考2中的git rebase --continue

总结起来就是:
1、git rebase -i HEAD~3 这个3代表你要合并的commit数量
2、弹出一个编辑框后,将需要merge的那几条信息前面的pick改为s 或者squash
3、在第二次弹出的框里面将提交的message合并一下。
4、git push -f 推到远程分支。

创建本地分支并上传到远程仓库

1,从已有的分支创建新的分支(如从master分支),创建一个dev分支
git checkout -b dev
2,创建完可以查看一下,分支已经切换到dev
git branch
* dev
master
3,提交该分支到远程仓库
git push origin dev

git branch -D 误删除后,怎条恢复

git reflog show --date=iso
获取所有的提交记录,按方向键向下一直找到,找到你需要找回的那个提交的commitID
git branch recover_branch[新分支名] commit_id
就在新分支上有对应的代码了

修改已经提交的message

https://blog.csdn.net/zwx622/article/details/42239649

回退命令

回退到上个版本
git reset --hard HEAD^
回退到前2次提交之前,以此类推,回退到n次提交之前
git reset --hard HEAD~2
退到/进到 指定commit的sha码
git reset --hard commit_id

2、强推到远程:
git push origin HEAD --force

作者:Only_io
链接:https://www.jianshu.com/p/49d816d17647
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值