Git 远程协作
2016-01-04 11:31
295 查看
命令
clone fetch pull post
git clone https://github.com/coder352/test.git在远程项目中增加一个test.txt的文件,写入”add some texts”
cd test/
git fetch
git log –oneline –decorate –graph –all:显示当前分支没有指向fetch后的commit,需要更新
git merge origin/master:产生一个fastforword的merge
git lol:HEAD已经指向了最新的提交
vim test.txt:编辑本地文件,添加一行”add some local texts”
git add test.txt
git commit -m “add some local texts in test.txt”
然后在github的项目中的test.txt中再添加”add some remote”,
git push:提示服务器有一些本地没有的历史记录,可能会覆盖
git pull:实际上是fetch 和 merge的合并,但是有冲突
vim test.txt:把不需要的数据删掉,保存起来
git add test.txt
git commit:不修改提交信息,直接退出,本地历史就是最新的
git push
服务器上的和本地上的就相同了
测试能分享的带注解的tag
git tag -a V0 -m”tag for v0”
git push:默认不把tag推送到远程仓库中的
git push –tags:就能把刚才创建的tag放到github上,并且能看到
在远程仓库中创建一个新的分支:feacher,并且和master切换一下,最后切换回master
git pull:获取代码仓库最新的数据
也可以用 git pull origin feacher:只更新feacher分支
同样git fetch origin feacher:也可以,只是服务器有更新时,要手动merge一下
vim test.txt:添加一行”add some texts on master”
git add test.txt
git commit -m “add some texts on master”
git checkout feacher
git push origin master:将master分支单独提交到服务器上
想把本地feacher分支删掉,然后把服务器上的feacher也删掉
git checkout master
git branch -d feacher:删掉分支,在本地
git push –delete origin feacher:删除服务器上的分支
还有一种方式删除远程的分支
git push origin :feacher:推送一个空的分支替代服务器上的分支
相关设置
GitHub上fork项目
git checkout -b featurevim test.txt:添加”add some feature texts”
git add test.txt
git commit -m “add some feature texts”
创建自己的Github项目 以shellscript为例
SSH keys
生成密钥对
cd ~/.sshssh-keygen -t rsa -C “352111644@qq.com”
提示输入一个保存key的路径,默认(/c/Users/Administrator/.ssh/id_rsa),修改为github_id_rsa,因为已经有Mininet的公钥占了
提示输入密码,输入SSH的密码,而不是GitHub的登陆密码,可以相同,也可以再想一个新的密码,(可以不输入)
确认密码
用ssh-agent保存SSH登陆密码,这样就不用每次都输入密码
ssh-agent bash //先执行这句换,否则可能会报Could not open a connection to your authentication agent的 错误
//eval “$(ssh-agent -s)” //Linux输入
eval “ssh-agent -s” //Windows用户输入
ssh-add ~/.ssh/id_rsa
输入SSH的密码,然后就保存起来了
添加公钥到你的github帐户
vim ~/.ssh/github_id_rsa.pub //将里面的keys放到github中即可验证下这个key是不是正常工作
ssh -T git@github.com 在项目仓库中输入
输入SSH的密码
显示”Hi code352! You have successfully authenticated”,就算完成了
修改你本地的ssh remote url. 不用https协议,改用git 协议
git remote -v 可以看到是https协议你可以使用浏览器登陆你的github,将下载链接那里的HTTPS改为SSH在上面可以看到你的ssh协议相应的url。类似如下:
git@github.com:coder352/shellscript.git
这时,你可以使用 git remote set-url 来调整你的url
git remote set-url origin git@github.com:coder352/shellscript.git
git remote -v
最好git clone 的时候就是用ssh的
上传Github
echo “# jvim” >> README.mdgit init
git add README.md
git commit -m “first commit”
git remote add origin https://github.com/coder352/jvim.git
git push -u origin master
Init
编写README.md编写.gitignore 下面是做简单的去除临时文件
*~
cd shellscript
git init
git config –global user.email “352111644@qq.com”
git config –global user.name “coder352”
git add . 全部文件git上去
git commit -m “first commit”
git remote add origin https://github.com/coder352/shellscript.git
git push -u origin master
update
修改一些文件git status 显示红色的修改还没添加到库
git add xx.md 将上面显示修改的文件重新添加一下
git status 显示绿色的还没commit
git push -u origin master
合作项目
clone 并查看分支
git clone …..git branch 查看分支
git branch -a 查看远程分支
git branch jrp 创建新的分支
git checkout jrp 切换分支
Pull Request
fork 一个项目clone 到本地
修改,git push
push request
相关文章推荐
- Genymotion常见问题整合与解决方案
- 基于xmpp的android即时通讯
- 一个java面试官的感慨来源于网络
- 总结之前遇到的并解决了的问题(一)-----关于继承了公共类,button不可用的问题
- sql server中的varchar和Nvarchar有什么区别?
- BigDecimal用法详解
- 多选dialog的简单实现
- Android内存泄露自动检测神器LeakCanary
- t-SNE visualization of CNN codes
- 神经网络编程入门
- RobotFramework-调用.py文件
- 虚树小结
- 同步复位和异步复位的对比
- Leetcode211: Populating Next Right Pointers in Each Node II
- 又见嵌入式
- 工业镜头五大参数
- 在分布式项目中使用memcached+cookie替代session
- [leetcode]Same Tree
- 写一个Redis封装类
- 斯坦纳树小结