回忆一个电脑多账户问题
之前也说了,如果使用ssh登陆的话,一个电脑就只能登陆一个账号了,不像通过凭据可以切换(但是其实也可以每次去生成新的公钥和私钥,只要你不嫌麻烦)
再次补充:
ssh-keygen -t rsa -C “邮箱”
到github或者码云上选择:
clone or download 把原来的use https改成use ssh
创建一个专门的use ssh的本地库
然后它(git)自动就会去家目录下找.ssh文件夹找到私钥
进行登陆了,就不需要我们填密码了!(win7及没有凭据管理器的比较方便,而且很安全!)
跨团队操作
跨团队操作 先fork一份到自己的远程库,然后修改之后,发起一个向对方库的一个pull request(推送申请),就可以了!
多人协作时,出现冲突,必须通过git pull origin master来合并之后,再进行push操作,这样才能解决冲突。
多人协作时,项目上传到git上:
配置.gitignore文件
在家目录下配置一个全局的,名字任意
Java.gitignore
内容如下:
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.classpath
.project
.settings
target
然后再全局的.gitconfig中加入配置,引入我们的git配置:
记住,一定是正斜线,不能是反斜线,就算你在windows中复制的是反斜线也要修改过来!把\修改成/,因为git是基于linux的,\反斜线git识别不了!
[core]
excludesfile = C:/Users/Administrator/Java.gitignore
eclipse中的git插件也会受到全局gitignore的影响,当然也可以在eclipse的git插件中通过图形化界面的方式进行gitignore配置
然后重新打开eclipse,发现我们配置了全局忽略之后,打开navigator视图发现,我们忽略的文件都没有标记了,只有我们未忽略的文件才有?号。
windows->preferences->team->git->configuration,发现其中的user setting中core.excludesfile已经被引入了!
{
补充:在eclipse的:
windows->preferences->team->git->configuration
右侧,可以看见三种settings:
1.user settings 全局用户级config:依照家目录中的gitconfig
2.system settings git安装的配置
3.repository settings 仓库中的settings .git/config
}
ecipse 中,文件右下角的角标:
+号:表示已经被追踪
*号:表示已经被暂存(加载到了暂存区)
add to index 其实就是加到暂存区中备选项
开始的commit 不多讲了,注意一点:
如果你的远程库,在创建的时候新加了一个master,但是没有什么内容的话,你选择的时候,可以选择force update,去覆盖你远程库的!
回忆:
git clone下项目:
注意一点,记得转(因为clone下来,我们忽略了很多文件,导致这不是一个完整的项目,项目右键configure->convert to Maven Project)
git push -u origin master:
-u:根据自己的需要替换掉远程的分支(第一次提交常用的)
git branch -a 查看所有分支:-a 参数,把当前分支显示成红色
git branch:同样也会显示所有分支,当前分支显示成绿色
git branch -r:查看所有远程分支。
git branch -vv: 查看当前本地库分支和远程库的关系,即:有没有跟踪关系(track)
删除远程库中的文件:
git rm – cached “路径+文件名”
git commit -m “delete file”
git push
git rm --cached filename/-r directory
git commit “xxxx”
git push
创建一个本地分支和远程分支进行关联:
git checkout -b 分支名称 本地库名称/分支名称
git checkout -b mzy origin/mzy
以及存在本地分支和远程分支了,需要进行关联:
git branch -vv:
查看当前本地库分支和远程库的关系,即:有没有跟踪关系(track)
git branch -vv
发现有没有建立映射关系的分支时应该怎么样处理?
git branch -u origin(本地仓库名)/master(分支名)
git branch -u lsnu(本地仓库名)/mzy(分支名)
或者这样的命令(效果同):
git branch --set-upstream-to origin(本地仓库名)/master(分支名)
git branch --set-upstream-to lsnu(本地仓库名)/mzy(分支名)
撤销映射关系:
git branch --unset-upstream
遇到的问题:
将当前目录文件移动到上级(项目名建重复了)
例如
mv ./git ./README.md …/