有关 git 的使用总结
前言
由于公司使用的 git 来管理项目的版本迭代问题,天天使用,可以说是非常重要的内容。以前都是将一些相关的命令行和操作记在笔记本上,但是最近拿出笔记本来才发现,记录的太过凌乱,因此也来写一篇文章来整理一下,以便以后方便使用。毕竟好记性不如烂笔头嘛。
git 的相关说明
Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
百度百科
使用 git 版本管理工具一般是用命令行进行操作,当然也有可视化工具,这就看自己的爱好了。
工具的选择
1、可以直接打开本地的命令行工具,进入到自己项目所在的文件夹下,进行操作即可
2、使用 git 工具打开(git 相关的工具也有多种,这里使用的是 git version2.9.2)。在项目文件夹下右键选择 git bash here,即可进行操作
准备工作
1、下载安装 git 工具(这里使用的是 git version2.9.2)。在任意文件夹下右键出现 git bash here 等字样,说明安装成功。
2、选择项目工作空间(建议:这里选择一个单独的文件夹,里面仅仅是项目使用,避免与其他文件混淆,便于操作)。工作空间的选择主要是用于创建项目仓库使用。
3、Mac 环境下进行配置和安装
(1) cd~/.ssh:检查是否有ssh密钥,如果没有提示:no such file or directory
(2) 如果有已存在的ssh密钥,需要进行备份一下并删除,执行
config id_rsa id_rsa.pub known_hosts
mkdir key_backup #在当前目录下创建一个叫"key_backup"的文件夹
cp id_rsa* key_backup #复制id_rsa和id_rsa.pub到key_backup里面
rm id_rsa*
(3) 创建一个新的ssh密钥
ssh-keygen -t rsa -C "你的邮箱"
然后一路enter即可,需要输入密码的正确输入
现实一个方形图表示创建成功
(4) 在你的GitHub上setting里面新建ssh
(5) 在你本地的.ssh/id_rsa.pub里面的全部复制到GitHub上保存
(6) 确认连接 ssh -T git@github.com 或者ssh git@github.com
(7) 设置你的用户名和邮箱
git config --global user.name "your name"
git config --global user.email "your email"
(8) 将远程的代码克隆下来
git clone git@github.com*
指定文件夹路径 git clone git@github.com*** file/files(文件夹路径)
等着下载完即可,这个过程比较慢,或者使用下面的步骤也可
以上的(1)-(8)步骤在 windows 系统上同样适用
创建项目仓库
有两种方式创建项目仓库:
1、是在现存的目录下,通过导入所有文件来创建新的 Git 仓库(git init)
2、从已有的远端 Git 仓库克隆出一个新的镜像仓库来(git clone)
git init 初始化本地仓库
要对现有的某个项目开始用 Git 管理,只需到此项目所在的目录,执行:git init
git clone 是将远程的代码仓库复制到本地
需要获得远程代码仓库的 URL(两种方式:ssh 和 https)
3、创建分支 (git branch -b branch_name)
4、查看分支 (git branch:查看本地分支,git branch -a:查看所有分支,包括远程分支)
5、删除分支 (git delete -d branch_name:删除已经 merge 到本分支的分支,git delete -D branch_name:删除分支)
6、切换分支 (git checkout branch_name)
在这里创建分支是很常用的功能,创建分支后,我们可以将任务拆分,然后完成后合并,提高工作效率。
创建分支时,一般我们选择一个根分支,在这个分支的基础上创建分支,这样我们可以获得根分支上的所有代码,并进行其他操作,在 -b 后面加上分支名即可
查看分支是,我们可以查看本地和远程的分支列表,进而进行相应的操作,比如删除、切换分支等
删除分支时,使用 -d 时会判断,删除的分支是否已经合并到你当前的分支上,如果没有则删除失败。-D 会直接进行删除。
在获取分支列表后,就可以使用 checkout 进行切换分支了
7、查看修改的文件列表(git status)
8、添加修改文件(git add file_name)
9、清除修改(在尚未提交的情况下:git checkout file_name)
使用 status 会打印出当前分支的所有改变的文件
这是 checkout 的另一种使用方法,就是可以根据需要还原文件,后面跟上文件名即可
10、提交代码(git commit )
11、提交代码(git push origin branch_name)
12、修改冲突流程(git fetch branch_name,git rebase origin/develop, git rebase --continue,git add file_name,git push -f branch_name,git merge branch_name)
git commit :是将代码提交到本地缓存区
git push origin branch_name:将缓存区代码提交到远程仓库
一般正常的流程是:
git status:查看修改文件
git add file_name:添加修改文件
git commit:将修改的文件添加到本地缓存区
git push origin branch_name:提交到远程仓库
在这里是最复杂的一步,当我们在提交代码的时候可能会出现我们的分支与其他同事的分支冲突的情况(同时修改同一个地方),因此我们要根据需要进行解决,将冲突部分删除,保留正确的代码。
命令的使用步骤是:
git fetch branch_name:将远程分支的代码全部拉取到本地
git rebase origin/develop:查看所有冲突,并解决
git add file_name:将解决的冲突加入到缓存区
git rebase --continue:解决完上一个冲突后,继续执行 rebase 查看下一个冲突部分
上面的两部其实也可以使用 git merge branch_name 来完成,大致一样
git push -f branch_name:将解决完冲突的代码强制推送到远程分支,并覆盖(这一步非必须做,尽量不要做,可能会导致丢失代码)
13、查看提交列表(git log)
14、还原提交(在提交代码的情况下:git resert commit_name)
在提交完代码后我们可以通过打 log 的方式,查看提交的列表
如果对于某次提交的功能进行还原,则可以使用 resert
15、保存工作进度(git stash)
16、查看进度列表(git stash list)
17、回到进度(git stash pop/apply stash@{进度ID})
18、删除进度(git stash drop stash@{进度ID})
这个功能适用于,当我们在开发一个功能时,突然有其他任务需要我们临时处理,但是本地的代码又不至于提交一次(中间含有很多调试代码和 Log.e()……都懂的)这样的场景,我们只需要将进度保存,就可以回到分支无修改状态,这时就可以切换分支,等完成其他任务,再切回分支,返回进度即可。
创建本地仓库并上传到远端
1、使用命令行工具,cd 到你的项目的文件夹下,使用 git init
2、然后 git add README.md,添加 README 文件
3、将本地文件添加到暂存区里面,使用 git add ,然后 git commit -m "first commit" 提交到本地仓库
4、在自己的 github 上创建一个新仓库,复制仓库的 URL
5、使用 git remote add origin URL 关联到远程仓库
6、将本地代码推到远程仓库中去,git push -u origin master
写在最后
这篇文章拖了很久,后来发现还是写完比较好,毕竟善始善终嘛。这里只是用于记录一些 git 最基本的使用命令,至于原理什么的可以到 git 官网进行学习,不过暂时只想到这么多,其实 git 的使用还有很多,希望大家多多查阅资料进行补充。如有错误,欢迎大家纠正,以便进一步修改。
最后一句
希望自己能以开始的梦想为目的,不要偏离了自己的初衷。
推荐一个 git 的学习网站
花絮:最近突然看到了 git 的诞生史,再次感慨大神就是大神啊,有兴趣的可以 look look