git入门
一、概念
Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
-
工作区:平时存放项目代码的地方。
-
暂存区:,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息。
-
分支区:是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本。
-
远程仓库:托管代码的服务器。
SSH公钥
Git服务器使用 SSH 公钥进行认证。 为了向 Git 服务器提供 SSH 公钥,如果某系统用户尚未拥有密钥,必须事先为其生成一份。 这个过程在所有操作系统上都是相似的。 首先,你需要确认自己是否已经拥有密钥。 默认情况下,用户的 SSH 密钥存储在其 ~/.ssh 目录下。 进入该目录并列出其中内容,你便可以快速确认自己是否已拥有密钥:
$ cd ~/.ssh
$ ls
id_rsa id_rsa.pub known_hosts
id_rsa 命名的文件,其中一个带有 .pub 扩展名。 .pub 文件是你的公钥,另一个则是私钥,公钥存存放在git服务器,私钥存放在本地。如果找不到这样的文件(或者根本没有 .ssh 目录),你可以通过运行 ssh-keygen 程序来创建它们。
ssh-keygen -t rsa -C "xxxxx@xxxxx.com"
生成的公钥添加到git服务公钥管理
cat id_rsa.pub
添加本机SSH可信列表,gitee为例
ssh -T git@gitee.com
若返回 Hi XXX! You’ve successfully authenticated, but Gitee.com does not provide shell access. 内容,则证明添加成功,就可以使用SSH协议对仓库进行操作了。
二、常用操作命令
#设置用户名
git config --global user.name "你的名字或昵称"
#设置邮箱
git config --global user.email "你的邮箱"
#查看用户名
git config user.name
#查看邮箱
git config user.email
#初始化
git init
#添加
git add <文件名>
#添加所有
git add .
#提交
git commit -m "注释内容"
#连接远程git服务器
git remote add origin https://gitee.com/用户个性地址/HelloGitee.git
#拉取
git pull origin master
#推送
git push -u origin master
#克隆
git clone ***
#查看状态
git status
#查看分支
git branch
#创建分支
git branch <分支名>
#删除分支
git branch -d <分支名>
#切换分支
git checkout <分支名>
三、应用场景
可以主线开发,稳定后创建分支。或者创建分支开发,稳定后合并主线。
下面以分支开发,合并主线为例:
分支开发案例
分支开发提交时,先确保是否在当前分支。查看develop分支,提交推送到develop分支,稳定以后合并到master主线。
1.开发分支检查
步骤:查看=>切换
#查看分支
git branch
#切换develop分支
git checkout develop
2.开发分支提交
步骤:添加(提交暂存)=>提交=>推送
#提交暂存
git add .
#提交develop分支
git commit -m "注释"
#推送远程develop分支
git push origin develop
3.开发分支合并
步骤:切换主线=>合并分支=>添加(提交暂存)=>提交=>送主线
#切换主线
git checkout master
#合并分支
git merge develop
#提交暂存
git add
#提交develop分支
git commit -m “注释”
#推送主线
git push origin master
分支管理案例
1.创建分支
git branch <分支名>
2.切换分支
git checkout <分支名>
该语句和上一个语句可以和起来用一个语句表示
git checkout -b <分支名>
3.分支合并
git merge <分支名>
比如如果要将开发中的分支(develop),合并到稳定分支(master),首先切换的master分支:git checkout master。然后执行合并操作:git merge develop。如果有冲突,会提示你,调用git status查看冲突文件。解决冲突,然后调用git add或git rm将解决后的文件暂存。所有冲突解决后,git commit 提交更改。
4.分支衍合
git rebase <分支名>
分支衍合和分支合并的差别在于,分支衍合不会保留合并的日志,不留痕迹,而分支合并则会保留合并的日志。要将开发中的分支(develop),衍合到稳定分支(master)。首先切换的master分支:git checkout master。然后执行衍和操作:git rebase develop。如果有冲突,会提示你,调用git status查看冲突文件。解决冲突,然后调用git add或git rm将解决后的文件暂存。所有冲突解决后,git rebase --continue 提交更改。
5.删除分支
git branch -d <分支名>
如果该分支没有合并到主分支会报错,可以用以下命令强制删除
git branch -D <分支名>