git常用命令与AndroidStudio常用快捷键

git相关内容:

产生密钥:
cd ~/.ssh (C:Users账户名称.ssh)
生成密钥:ssh-keygen -t rsa -C "your_email@youremail.com"
Enter就行。然后,会提示你输入密码,如下(建议输一个,安全一点,当然不输也行):

添加公钥到你的github帐户:
1,登陆你的github帐户。然后 Account Settings -> 左栏点击 SSH Keys -> 点击 Add SSH key
2、然后你复制上面的公钥id_rsa.pub内容,粘贴进“Key”文本域内。 title域,你随便填一个都行。
点击 Add key,验证:ssh -T git@github.com(git地址)即可

git命令
git  branch -va 查看分支
git branch -l本地分支 -r查看远程分支,-a查看所有分支
git checkout -b dev origin/dev 切换 创建分支dev,关联到此分支
git checkout -b [分支名] [远程名]/[分支名]

创建分支
git checkout -b feature_name origin/master 在origin/master的基础上,创建一个新分支

切换分支
如果有了多个branch, 就可以用checkout切换到某个branch。用法很简单:
git checkout branchname

上面的命令如果加上参数branch的话,功能就有所增强
git checkout branchname -- filePath

git fetch 更新远程库变化内容
git fetch <远程主机名> <分支名>
git fetch origin master

git merge
合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
git merge --no-ff -m "merge message" dev


Git status
查看版本库的状态。可以得知哪些文件发生了变化,哪些文件还没有添加到git库中
git diff filename 查看修改内容

git reset回退
git reset --hard HEAD^ 回退上一个版本
git reset --hard 2e70fdf 回退指定版本

修改与撤销

用git diff HEAD -- readme.md查看工作区和版本库里面最新版本的区别。
git checkout -- file可以丢弃工作区的修改
例:git checkout -- readme.md意思就是,把readme.md文件在工作区的修改全部撤销,即让这个文件回到最近一次git commit或git add,时的状态,误删的文件恢复。
当然也可以用git reset命令。

git log
git log --pretty=oneline log简化显示
git log --graph --pretty=oneline --abbrev-commit 分支的合并情况历史
git reflog 查看connit id记录历史
git log --stat

git pull push
git pull origin dev 远程分支到本分支

创建+切换分支:git checkout –b name
合并某分支到当前分支:git merge name
删除本地分支:git branch –d name
删除远程的分支
git branch -r -d origin/hongchangfirst
要想真正删除远程分支上的内容,可以这样:
git push origin :hongchangfirst
注意,冒号前面的空格不能少,相当于把一个空分支push到server上,等于删除该分支

git stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作:
另一种方式是用git stash pop,恢复的同时把stash内容也删了
可以多次stash,先用git stash list查看,然后恢复指定的stash
'git stash apply stash@{1}'就可以将你指定版本号为stash@{1}的工作取出来,stash内容并不删除,使用git stash drop来删除


分支切换,更新问题
esc,esc.
:q! enter


查看远程仓库:$ git remote -v
添加远程仓库:$ git remote add [name] [url]
git remote add teamCenter http://git.ihangmei.com/AndroidTeam/WangFanApp.git

删除远程仓库:$ git remote rm [name]
修改远程仓库:$ git remote set-url --push [name] [newUrl]

git fork分支同步更新源分支内容:
1,确定一下是否建立了主repo的远程源:
    git remote -v
2,如果只能看到你自己的两个源(fetch 和 push),那就需要添加主repo的源
    git remote add upstream URL
    git remote -v
3,想与主repo合并:
    git fetch upstream
    git merge upstream/master


git commit -am "<message>"
git commit -a
已经通过git add <change file>将其添加到stage,可以通过git commit -m "<message>" 你的文件之前已经提交过,但这次的改动还没有进stage
git push -u origin ResourceCodeClean

通常我们提交git的时候都是
git add .
git commit -m "some str"
git push

这三大步,而实际上,你只需要两条命令就够了,除非有新的文件要被添加进去。
git commit -am "some str"
git push


冲突解决
文件(比如,a用户把文件改名为a.c,b用户把同一个文件改名为b.c,那么b将这两个commit合并时,会产生冲突)
如果最终确定用b.c,那么解决办法
git rm a.c
git rm origin-name.c
git add b.c
git commit

内容冲突
当merge出现冲突的时候,输入
git mergetool
differmege
http://blog.csdn.net/u010232305/article/details/51767887
git config --global merge.tool diffmerge

更新失败错误
fatal: refusing to merge unrelated histories
最新的版本需要添加--allow-unrelated-histories
假如我们的源是origin,分支是master,那么我们 需要这样写git pull origin master ----allow-unrelated-histories

去除build目录
git rm -r --cached app/build 删除目录
git commit -m”rm app/build”
git push
在.gitignore里面添加忽略文件 app/build,或者git checkout .gitignore

忽略已提交的文件
git rm --cached logs/xx.log,然后更新 .gitignore 忽略掉目标文件,最后 git commit -m

分支tag
切换到需要打标签的分支上 Switched to branch 'master' or git checkout [tagname]
查看所有标签 git tag
查看标签信息 git show <tagname>
打一个新标签 git tag <name>
创建带有说明的标签,用-a指定标签名,-m指定说明文字
git tag -a v0.1 -m "version 0.1 released" <commitid>
删除标签 git tag -d v0.1.2

tag发布
通常的git push不会将标签对象提交到git服务器,我们需要进行显式的操作:
$ git push origin v0.1.2 # 将v0.1.2标签提交到git服务器
$ git push origin –tags # 将本地所有标签一次性提交到git服务器

基本讲解
http://www.ruanyifeng.com/blog/2014/06/git_remote.html
Git在AndroidStudio上的使用
http://blog.csdn.net/huaishu/article/details/50475317

其它参考
http://blog.jobbole.com/78960/
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013752340242354807e192f02a44359908df8a5643103a000
git remote operator
http://blog.csdn.net/joelovegreen/article/details/42913163
http://www.cnblogs.com/dubuqingfeng/p/201503-git-fork-synchronized.html
git rebase

http://www.mamicode.com/info-detail-1812492.html


AndroidStudio快捷键部分
android sudio proplem
http://www.cr173.com/html/24051_1.html

常用快捷键:
Alt + enter 导入包,自动修正
Alt+ insert 重写方法,使用模版方法
Ctrl+Shift+J    可以整合一行变为两行
Ctrl + O 查看类方法相当于eclipse outline功能
shift连按2次 查找项目指定类文件
Ctrl+Shift+Space 代码提示 相当Eclipse Alt+/
Ctrl+/ 或 Ctrl+Shift+/  注释(// 或者/*...*/ )
Ctrl+J  自动代码
Ctrl+E 最近打开的文件
Ctrl+H 显示类结构图
Ctrl+Alt+B 转到方法的实现
Ctrl+B:直接跳转到类、方法、成员变量定义的地方。与Ctrl+鼠标左键效果一样
Ctrl+Alt+L  格式化代码
Ctrl+Alt+O 优化导入的类和包
Ctrl+R 替换文本
Ctrl+F 查找文本
交换两行代码
Ctrl+Shift+箭头

Shift+F6  重构-重命名
Alt+F1:快速打开project view、structure view 等查看相应的元素。
Ctrl+Tab:打开界面切换窗口

Ctrl+F12    类方法查找
Ctrl+Shift+F    全局查找
Control + N 类文件查找
Control + Shift + N 文件查找
F4 / Control + Enter 跳转源码
Control + G 跳转行
Shift + F4 在新窗口中打开当前编辑器

Ctrl+Y    删除行
Ctrl+Shift+U    大小写转换
Ctrl+Alt+L 代码格式化
Ctrl+Alt+T    环绕代码try catch for 等    

Ctrl+numpad - 折叠
Ctrl+numpad + 展开
Ctrl+Alt+(+,-)整个文件

构建并运行
Control + F9  构建
Shift + F10      构建并运行
Ctrl + Alt + M 指定代码块放入新方法

Studio里面创建library,发现R一直引用不了
build->Make Module “yourLibrary”,然后发现R.java生成了

关联源码
打开C:Users用户.AndroidStudio2.1configoptions 这个路径,找到jdk.table.xml这个文件


快捷键:
https://developer.android.com/studio/intro/keyboard-shortcuts.html
http://developer.android.com/sdk/installing/studio-tips.html
程序包名修改
CTRL + ALT + L (Win/ Linux)
 have started developing with Android Studio. In eclipse I was using Ctrl+Shift+F but in Android studio it does not work, It will be different.

studio一些配置
http://www.imooc.com/wenda/detail/240863

重新命名application package方法:
You can do this:
Change the package name manually in the manifest file.
Click on your R.java class and the press F6 (Refactor->Move...). It will allow you to move the class to other package, and all references to that class will be updated.


参考:
https://developer.android.com/studio/intro/keyboard-shortcuts.html
http://developer.android.com/sdk/installing/studio-tips.html
基本设置 http://www.imooc.com/wenda/detail/240863

原文地址:https://www.cnblogs.com/happyxiaoyu02/p/7347288.html