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

[经验分享] Git与TortoiseGit基本操作

[复制链接]

尚未签到

发表于 2018-1-13 06:14:18 | 显示全部楼层 |阅读模式
1. GitHub操作
  本节先简单介绍 git 的使用与操作, 然后再介绍 TortoiseGit 的使用与操作.
  先看看SVN的操作吧, 最常见的是 检出(Check out ...), 更新 (Update ...), 以及 提交(Commit ...); 相当于有一个服务器端, 可以多个客户端进行访问和操作.
  Git是SVN以后的新一代的版本控制系统/协议. 适合于大规模的开源软件多人协作的开发. 有一个总仓库(如GitHub,CSDN,OSchina等提供), 每个客户端都有一个本地仓库(这个本地仓库有点对应于SVN的服务端仓库), 以及一个可以看见的本地项目.
  让我们想想,至少需要有哪些功能.以 GitHub为例,首先,必须得有一个线上仓库(Repository), 这首先得新建一个仓库.
  然后,登录 GitHub, 在右上角找到 New Repository 或者 加号下拉按钮(+),点击进入新建仓库页面:https://github.com/new , 如下图所示:
DSC0000.jpg

  依次填写仓库名,以及其他信息后,点击 " Create repository " 按钮,即可创建一个在线仓库. 因为这个仓库是挂在你的账号下的,所以可以是任意合法的字符,只要和你的其他仓库不冲突即可.
  仓库创建成功后,就会进入仓库预览页面, 如下图所示:
DSC0001.jpg

  然后,我们可以点击右边的 HTTPS 链接, 上方的文本框里面就显示了 HTTPS协议下的仓库访问地址, 可以点击进去全选,也可以点击右边的复制按钮复制到剪贴板. 例如,刚刚创建的项目访问路径是:
  

https://github.com/cncounter/LispGentleIntro.git  

  

  是一个以 https:// 开始,以 .git 结尾的 URL,根据提示,叫做 clone URL.
  好了,仓库创建完成,可以进入下一步了.

2. Git使用与操作
  如果你偏爱命令行,那么可以简单参考下这一小节. 否则,请往下翻,直接看 TortoiseGit使用与操作

2.1 克隆项目(clone ...)
  Win+R 快捷键打开运行对话框,输入 cmd 回车, 在 cmd 中(其实在 GitBash中也可以), cd 切换到存放git项目的目录, 如:
  

Microsoft Windows [版本 6.1.7601]  
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
  

  
C:\Users\Administrator>F:
  

  
F:\>cd GIT_ALL
  

  然后执行命令:  git clone https://github.com/cncounter/LispGentleIntro.git  ,就会把项目克隆到当前目录下, 项目的目录名字默认为  LispGentleIntro .
  

F:\GIT_ALL>git clone https://github.com/cncounter/LispGentleIntro.git  
Cloning into 'LispGentleIntro'...
  
remote: Counting objects: 5, done.
  
remote: Compressing objects: 100% (4/4), done.
  
remote: Total 5 (delta 0), reused 0 (delta 0)
  
Unpacking objects: 100% (5/5), done.
  
Checking connectivity... done.
  

  命令行截图如下:
DSC0002.jpg


2.2 提交项目(commit ...)
  然后可以 cd 切换到 LispGentleIntro 目录, 新增或者修改某些文件.这里只是模拟一下操作. 实际情况可能是 使用 Eclipse 导入项目(不要拷贝,Copy...)进行一些编辑, 然后将当前目录下的所有有变动的文件告诉索引库,接着提交到本地仓库.
  

F:\GIT_ALL>cd LispGentleIntro  

  
F:\GIT_ALL\LispGentleIntro>echo some content >> cncounter.txt
  

  
F:\GIT_ALL\LispGentleIntro>echo by cncounter >> README.md
  

  
F:\GIT_ALL\LispGentleIntro>git add .
  

  
F:\GIT_ALL\LispGentleIntro>git commit -m "add some info."
  
[master 86d090f] add some info.
  
2 files changed, 4 insertions(+)
  
create mode 100644 cncounter.txt
  

  提交到本地仓库有什么好处呢? 本地仓库就是一个版本管理库,我们在编写代码时,如果写错了,那么可能需要 Ctrl+Z 来撤销,撤销撤销,如果很多,而且跨文件,就很麻烦,可能需要Copy文件什么的。 这时候本地仓库就很有用了. 修改到某个阶段,然后就提交到本地仓库. 可以有效防止丢失,方便回退. 而且,提交到本地仓库不会影响别人看到的内容(只有本机可见).

2.3 推送项目(push ...)
  如果完成到一定程度,那么可以推送到远端在线仓库. 推送之前,请确保你已经设置了全局的 user.name 和  user.email , 如果没有设置,或者不想使用全局的信息,可以在当前项目下设置:
  

F:\GIT_ALL\LispGentleIntro>git config user.name "renfufei"  

  
F:\GIT_ALL\LispGentleIntro>git config user.email "renfufei@qq.com"
  

  接着,可以执行推送(push), 推送就是将已经提交到本地仓库的那部分内容给推到远端在线仓库.(修改了,但没提交的那部分内容,不会被推送). 执行  git push  命令即可:
  

F:\GIT_ALL\LispGentleIntro>git push  
Username for 'https://github.com': renfufei
  
Password for 'https://renfufei@github.com':
  
Counting objects: 6, done.
  
Delta compression using up to 8 threads.
  
Compressing objects: 100% (3/3), done.
  
Writing objects: 100% (4/4), 402 bytes | 0 bytes/s, done.
  
Total 4 (delta 1), reused 0 (delta 0)
  
To https://github.com/cncounter/LispGentleIntro.git
  
e8c0fb1..6407079  master -> master
  

  在连接上远端服务器之后,会要求你输入用户名与密码. 其中,用户名是你注册GitHub时的账号,不是邮箱. 接着是密码,注意密码是没有回显的,也就是为了安全,不告诉你具体输入了几个字符,输入完成回车即可. 截图如下:
DSC0003.jpg

  好了,推送完成,这时候用浏览器打开在线仓库,看看内容是不是已经变了?

2.4 拉取项目(pull ...)
  当然,如果多人协作, 或者多个客户端进行修改, 那么我们还要拉取(Pull ... )别人推送到在线仓库的内容下来。 大神们是不推荐使用 pull 命令进行拉取的, 因为封装了细节(git pull == git fetch + git merge). 对于这群更喜欢用命令行的神们来说, 一切在掌控之中是一种强迫症!!!(开个玩笑, 其实项目成员复杂,约定不好以后, pull 确实会有很多问题,会坑人.)
  常规使用,我们执行 git pull 即可:
  

F:\GIT_ALL\LispGentleIntro>git pull  
Already up-to-date.
  

  当然,因为没有其他文件被修改,所以直接提示 已经更新到最新. 常规操作就这些,需要注意的是,和使用SVN的好习惯一样,你在修改本地内容之前,最好先 pull 一下,减少冲突的可能.

3.TortoiseGit使用与操作
  使用 Git命令有时候确实不怎么方便,特别是每次都要输入密码,如果配置 SSH 的方式,又实在是很麻烦.(当然,必须使用 Windows 神器才有方便友好的客户端图形界面啦!!!)
  关于 TortoiseGit 的安装请参考前一小节.

3.1 克隆项目
  打开资源管理器(我的电脑/计算机), 进入规划好的某个目录中, 然后在空白处点击鼠标右键, 选择 TortoiseGit --> 克隆... (Clone...).
DSC0004.jpg

  弹出克隆项目对话框:
DSC0005.jpg

  在对话框的 URL中输入项目地址,如:
  

https://github.com/cncounter/LispGentleIntro.git  

  

  确定本地目录,然后点击 确定 按钮. 等待完成后,点击关闭按钮即可.
DSC0006.jpg


3.2 修改提交项目
  项目克隆完成后(可以将克隆 clone 理解为 下载, 检出 checkout 操作). 修改本地项目中的某些文件,如 将 README.md 修改为如下内容:
  

LispGentleIntro  
===============
  

  
Lisp-符号计算入门指引翻译
  

  
<a href="http://cncounter.duapp.com/">天朝计数器</a>
  

  还可以试试增加一些文件. 如  files.txt  .
  然后在本地项目的空白处点击鼠标右键, 选择 TortoiseGit --> 提交(C) -> "master"... 或: Commit -> "master"....
DSC0007.jpg

  弹出提交(Commit)对话框:
DSC0008.jpg

  作为好习惯,填写提交日志,勾选需要提交的文件,然后点击 "确定" 按钮, 即提交到本地仓库.
DSC0009.jpg


3.3 将提交到本地的项目推送到在线仓库
  推送是提交的下一步操作.
  在本地项目的空白处点击鼠标右键, 选择 TortoiseGit --> 推送... 或: Push....
DSC00010.jpg

  弹出推送(push)对话框:
DSC00011.jpg

  一般保持默认,点击 “ 确定 ” 按钮.
  然后弹出推送进度界面, 可能要求你输入用户名:
DSC00012.jpg

  确定OK,然后要求输入密码:
DSC00013.jpg

  密码输入正确后,OK,显示推送成功界面:
DSC00014.jpg

  如果你按照上一小节的设置操作,则输入密码以后会记住密码. 密码会明文保存在 C:\Users\Administrator\.git-credentials 这种文件中, 请小心使用.

3.4 拉取项目(pull ...)
  如果本地的项目没有在线仓库的新,则需要执行拉取操作(Pull ...).
  在本地项目的空白处点击鼠标右键, 选择 TortoiseGit --> 拉取... 或: Pull....
DSC00015.jpg

  弹出拉取(pull)对话框:
DSC00016.jpg

  如果拉取有BUG,则可以勾选上变基(不报错就别勾选了!!!), 确定,进入 拉取进度界面:
DSC00017.jpg

  然后执行变基:
DSC00018.jpg

  然后完成即可.
  这应该是 TortoiseGit 的一个BUG, 要解决这个问题,请参考 解决 TortoiseGit 诡异的 Bad file number 问题 (或者可以换回老版本. 如果你没有出这个问题,那么,可能是我的机器哪里损坏了).

运维网声明 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.yunweiku.com/thread-434508-1-1.html 上篇帖子: Git的基本操作 下篇帖子: git 冲突是怎么产生的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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