设为首页 收藏本站
查看: 769|回复: 0

[经验分享] linux下git与github简单使用

[复制链接]

尚未签到

发表于 2016-2-26 08:36:51 | 显示全部楼层 |阅读模式
个人觉得github蛮好用,但是帮助系统还是不够人性化,东一句西一句,让新手看着头晕。所以稍稍整理下主要的步骤。
首先是在github上创建一个账户:luozhaoyu
然后我个人的主页就是github.com/luozhaoyu了。
然后在github上创建一个test仓库,进行基本配置后需要在test仓库中添加可以提交代码的电脑的公钥。
这个公钥怎么生成呢?这就要转到我们PC这一边进行设定了。
在linux上有一个ssh-keygen的工具,使用命令
ssh-keygen -t rsa -C "committer_email@committermail.com"
设定存放目录和密码后把.ssh/id_rsa.pub的文件内容粘贴进github的test仓库里。
测试是否成功
ssh -T git@github.com
如果出现
引用
Agent admitted failure to sign using the key

则使用
ssh-add id_rsa
并输入passphrase
在本机安装git
apt-get install git

配置用户名和邮箱
git config --global user.name 'The Name'
git config --global user.email anyemail@mail.com
这个等效与home下.gitconfig文件中的
[user]                                                                          
>---name = LZY under Ubuntu with Hasee
>---email = luozhaoyu90@gmail.com
这里应该是随便配置用户名和邮箱都可以,这个事方便大家联系
成功后变在本机创建一个git仓库。
git init
在远程初始一个git仓库
git --bare init
新建一个文件夹test_git,在里面添加若干文件
git add *
提交并评论
git commit -m 'your comment'
设置github的仓库地址并取名为origin(可能可以取其它名字?)
git remote add origin git@github.com:luozhaoyu/test.git
最后把master提交到origin服务器上
git push origin master

复制一个git项目
git clone git://github.com/luozhaoyu/test.git
更新项目
git pull

创建一个分支
git init之后默认的分支叫做master,在commit之后可以使用
git branch查看现在所在的branch分支
git branch newbranchname创建一个新分支
git checkout branchname切换到其它分支OOXX
回滚
引用

撤销本地commit
git reset --soft HEAD^
git reset HEAD .
这么做git log里也不会有痕迹
回滚有两种方法,一种是留痕迹的git revert
git revert cc3a9d3a5820b16bca3c1761efb5885b90371e94
这是通过又一次的commit中和之前不要的commit达到回滚的目的。所以revert后面跟着的commit-ish就是需要被回滚的那次commit的值
另一种是不留痕迹的,也就是时光机
git reset d5bb1731bf32fb62dc7eedc573da41fa31e27151 --hard直接回到commit-ish那时的状态,之后发生了什么都不会出现在commit log里
建议使用checkout + merge代替回滚

撤销不小心pull之后造成的merge
git merge --abort




永久删除不小心commit的文件
https://help.github.com/articles/remove-sensitive-data
git filter-branch --index-filter 'git rm --cached --ignore-unmatch FOLDER/*' --prune-empty --tag-name-filter cat -- --all
git push origin master --force
# 完成上一步就以及删除了文件历史,注意要往每一个分支push,可以使用--all --tags
# 下面是在本地删除多余文件
rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now
git gc --aggressive --prune=now

git-filter-branch
git filter-branch --force --tree-filter "find . ! -path './targetfolder/*' ! -path './.git*' ! -path './targetfolder' -delete" -- --all


查看commit的change
git show 91d71384d8f7592e206003047bb4f9c56f2a4caf
git log -p --color
git diff -p

查看所有在历史中的文件
git log --pretty=format: --name-only --diff-filter=A | sort -

http://pcottle.github.com/learnGitBranching/

git log --pretty=format: --name-only --diff-filter=A | sort -
未完待续……

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-182882-1-1.html 上篇帖子: 在LINUX上创建GIT服务器 下篇帖子: git入门-linux下配置git
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表