Git学习和使用归纳《一》
git学习和使用总结,涉及本地和远程仓库的基本操作,github中ssh key配置
常用的版本控制工具 · Github的基础
安装
命令列表
在进行任何 Git 操作之前,都要先切换到 Git 仓库目录,也就是先要先切换到项
目的文件夹目录下
新建git仓库并初始化
- 新建test文件夹
- 在test内打开git命令行界面
- ==
git init
== 初始化该文件夹为仓库
如图,初始化后出现了蓝色括号master分支
查看仓库状态 git status
比如说,先在test/下新建个a.md文件,在查看状态
如图显示,还未提交、有未追踪(track)文件 a.md ,使用 git add <file>
追踪文件
向缓存区提交文件 git add
如图add提交后,再次查看仓库状态。
- 提示以下文件 Changes to be committed , 意思就是 a.md 文件等待被提交
- 可以使用
git rm --cached <file>
清空该缓存
向仓库提交 git commit -m’mes’
如图输入git commit -m 'first commit'
,用来提交仓库文件,-m [mes]
用来指明提交信息
再次查看状态,显示没有什么需提交的
git add 是先把改动添加到一个「暂存区」,你可以理解成是一个缓存区域,临
时保存你的改动,而 git commit 才是最后真正的提交。这样做的好处就是防止误提交
流程图如上所示
- 修改被追踪文件
- 同样的流程:add、commit一遍
- 删除被追踪的文件/目录 【取消追踪】
git rm --cached 文件名
,将文件从缓存中删除,不会删除实际物理文件git rm --cached -r 目录
,同上只是删除文件夹git commit -m'mesg'
,然后提交- 如果要删除实际物理文件,
git rm --f 文件名
查看所有提交记录 git log
会显示作者(初始配置时设置的)、时间、提交信息
分支(branch) 新建并选择分支
分支: 简而言之就是树枝分叉,为了协同合作,不同人的工作在不同分支下进行互不影响,最后再合并一起
初始化时会默认创建主分支master并使用
- git branch 查看分支情况
- git branch 新建分支
- git checkout 选择所用分支
- 新建并选择分支
git checkout -b <b_name>
,一步到位
如图可知,所选择的分支前都会有个 * 号
- git branch -a 查看本地和远程所有分支
- git checkout -b [b_name] origin/ [b_name] 创建远程分支到本地
合并分支 git merge
在分支上代码通过测试后,想要合并到主分支上,两步走:
- 切换到主分支master
git merge <b_name>
合并欲合并的分支b_name
==注意了==
这个时候可能会有冲突而合并失败,留个包袱,这个到后面进阶的时候再讲
本地删除分支 git branch -d/-D < b_name>【-D 强制删除】
不能尝试删除当前所在分支状态下的分支(就是当前选择了other分支,就不能删除other分支)
远端删除分支 git push origin :< b_name>
版本标签 git tag
我们在客户端开发的时候经常有版本的概念,比如v1.0、v1.1之类的,不同的版本肯定对应不
同的代码,所以我一般要给我们的代码加上标签,这样假设v1.1版本出了一个新bug,但是又
不晓得v1.0是不是有这个bug,有了标签就可以顺利切换到v1.0的代码,重新打个包测试了。
- 新建标签
git tag <tag_name>
- 查看版本标签
git tag
- 切换版本
git checkout <tag_name>
向远程Github仓库提交代码
基于SSH网络协议授权
SSH是一种网络协议,用于计算机之间的加密登录。
生成SSH Key
Git BASH中输入ssh-keygen -t rsa
,指定rsa算法生成密钥
注意:ssh-keygen中间没有空格,否则==会报
Bad escape character ‘ygen’.
的错误==
注意了接着连续三个回车键(不需要输入密码),免密登录
如图所示会生成两个文件 id_rsa 和 id_rsa.pub ,而 id_rsa 是密钥,
id_rsa.pub 就是公钥。
因为我这里原本已经有密钥,所以多了一步 Overwrite(y/n) ?
我Windows默认是保存在 c:/userss/username/.ssh 文件夹下
Github配置SSH Key
如图示,在setting中的 SSH and GPG Keys 中,点击右上角 New SSH Key
只要将id_rsa.pub中的内容粘贴到Key中,然后点击添加即可
之后,在git bash 中输入ssh -T git@github.com
测试,如果出现如图所示,则配置成功
从Github上克隆【clone】项目、推送【push】、下拉【pull】代码
为了测试在Github上新建了个项目git-test,点击 clone or download
,选择使用 Use SSH,复制它提供的passphare,如git@github.com:josonle/git-test.git
- 进入git bash,随便选个文件夹(比如桌面),命令行输入
git clone git@github.com:josonle/git-test.git
如图,克隆成功了,而且clone下来的项目默认就是仓库,主分支是origin/master
- 随便修改下git-test项目,然后commit,再通过命令行输入
git push origin master
如图,向主分支master推送成功
- 下拉项目更新内容
我在github上手动新建分支other,该分支下新建test-v0.1.md文件。然后类似上文输入
git pull origin master
如图,毫无变化。那是当然,因为这里下拉的是master分支
git pull
直接查看所有变化
如图,它下拉显示了一个新分支other,然后我们可以把other分支下拉
git pull origin other
本地仓库test2向远程不同名仓库test提交
- 切换到test2目录下
- 关联test2项目和远程项目test
git remote add origin git@github.com:stormzhang/test.git
origin是给远程项目仓库起的名,公认都是origin
查看本地当前项目有哪些远程仓库可以执行如下命令:
git remote -v
设置好后,就可以像上文一样提交
git push origin <分支名>
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)