1.对终端显示的配置,给文字添加颜色,更易于阅读
git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto
2.当我们向服务器(比如Git@OSC,Github)提交代码时得有个用户名邮箱什么的,可以用如下命令进行设值
git config --global user.name "Your Name"
git config --global user.email "your@email.com"
其实这些配置都会存放在用户所在目录下的.gitconfig文件中
进行完配置后,现在比如我们现在有个Android Studio工程GitHelloWord,我们如何来让git进行管控呢?
1.我们现切换到这个目录下(是和.classpath和.project同级的那个目录),右击然后选择Git Bash,这是就会弹出Git命令行,并且自动切换到当前所在目录,我们运行
git init
命令,可以看到会在该目录下生成一个.git的隐藏目录,这说明该目录以及归git进行管理了
2.输入
git add .
把该目录下的所有文件全部提交到缓冲区
3.使用
git commit -m "GitHelloWorld first commit"
命令,将代码提交到HEAD,注意此时还没有提交到服务器
4.我们该如何提交到服务器呢?对于熟悉SVN的用户,我们需要一个SVN仓库的地址还有所谓的用户名,密码,但是对于Git可能稍有不同
首先在Git Bash中输入:
ssh-keygen -t rsa -C "youremail@xxx.com"
然后一路回车,这个会在当前用户文件夹下,生成.ssh 文件夹,里边有个 id_rsa.pub文件,用记事本打开,复制其中的全部内容。
然后打开http://git.oschina.net/keys页面,在该页面中添加公钥,标题可以随便填,公钥就是刚才复制过的内容,然后保存即可
我们在http://git.oschina.net/projects/new中添加一个新项目,比如GitHelloWolrd(这个名称后面会用到,这个步骤是必须的)
我们先来测试下是否联通:输入命令
ssh -T git@git.oschina.net
然后会通知你输入用户名/密码,该密码就是你的osc账户密码,然后会提示你输入yes/no,输入yes后回车,显示出
Hi *****! You've successfully authenticated, but GITEE.COM does not provide shell access.
说明连接成功(密码也可以在http://git.oschina.net/profile/account进行设值)
下面就可以提交项目到git仓库中了
首先我们执行一下命令给origin添加URL
git remote add origin http://git.oschina.net/whaon/GitHelloWolrd.git
如果添加了多个URL可以用执行下面的命令清除一下
git remote rm origin
将.git下的config文件,把如下内容删掉(上次提交失败的信息)
[remote "origin"]
url = http://git.oschina.net/***.git
fetch = +refs/heads/*:refs/remotes/origin/*
然后再执行
git remote add origin http://git.oschina.net/whaon/GitHelloWolrd.git
git push origin master
或者
git push -u origin master
这时候会发现可能仍然提示提交失败~,这是因为git仓库项目里有个README文件,需要先把它同步到不敌仓库再提交就可以里。
同步代码
git pull origin master --allow-unrelated-histories
然后在执行提交,这时项目已经被提交到osc@git上了
我们可以在自己的git中看到已经提交的项目了
以后的操作就是在本地修改->add->commit->push
当B程序员想参与到该项目中,该怎么办呢?
首先B程序员需要克隆远程版本库,使用如下命令
git clone http://git.oschina.net/csen66/****.git
把远程项目(该项目是我随便搜的)clone到本地,注意你只有只读权限,如果你想参与到该项目中,需要改项目的拥有者把你添加进项目组,然后就可以协作开发了
error: failed to push some refs to 'https://github.com/xxxx.git'
1: 进行push前先将远程仓库pull到本地仓库
$ git pull origin master #git pull --rebase origin master
$ git push -u origin master
2: 强制push本地仓库到远程 (这种情况不会进行merge, 强制push后远程文件可能会丢失 不建议使用此方法)
$ git push -u origin master -f
3: 避开解决冲突, 将本地文件暂时提交到远程新建的分支中
$ git branch [name]
# 创建完branch后, 再进行push
$ git push -u origin [name]