Git
开始大量写代码做自己的项目、实现想法后,越来越觉得需要一个好的版本管理器来管理自己的代码。Git是一个大家都推荐的版本管理器,所以我也开始自己摸索。在别人那里看了学习了命令后,在用的过程中总是会忘记。所以我在这里把自己用过的命令总结一下,在自己忘记后好回来复习。
Git 连接 Github
1、 配置本机git
$ git config --global user.name "name"
$ git config --global user.email "your-email"
2、 生成密钥
$ ssh-keygen -t rsa -C "your-email"
3、 提交密钥
$ /home/linux/.ssh/id_rsa.pub #Linux 系统密钥位置
$ /c/User/admin/.ssh/id_rsa.pub #Windows 系统密钥位置
复制密钥,到 github网页中登录自己的账号,然后在 setting 里找到 SSH KEY ,新建 SSH KEY 将复制的密钥加入
4、 检验是否链接上了github
$ ssh git@github.com
//正常情况下,回显如下
PTY allocation request failed on channel 0
Hi plinx! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.
如果返回错误
$ ssh: connect to host ssh.github.com port 22: Connection timed out
那么
$ cd ~/.ssh
$ touch config
在 .ssh
目录下创建一个 config 文件,输入如下内容:
Host github.com
User "your-email"
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443
再进行测试是否链接上github.com
$ ssh -T git@github.com
Git 命令
-
克隆项目
$ git clone https://github.com/program owner/program.git
-
提交更改
$ git add file # file为你要提交到暂存区的文件 $ git commit -m "note" # 从暂存区提交到版本库,并添加操作 注释 note $ git diff HEAD -- file #查看工作区和版本库里最新版本的区别
-
撤销修改
$ git checkout -- file
-
关联远程仓库(本地库可以和多个远程库关联)
$ git remote #查看当前配置有哪些远程仓库,列出已经存在的远程分支 $ git remote add learngit git@github.com:michaelliao/learngit.git # 关联github $ git remote add learngit git@gitee.com:michaelliao/program.git # 关联码云 $ git remote -v # 查看远程库信息 $ git remote rm learngit # 删除已关联的远程库 github
-
分支
首先,创建
laptop
分支,然后切换到该分支$ git branch laptop $ git checkout laptop #当然,也可以用一行命令代替 git checkout -b laptop
然后,在分支
dev
下进行各种文件操作,将操作提交到版本库,分支dev
工作完成后切换回master
分支$git checkout master
现在,将分支
dev
工作合并到master
分支:git merge dev # git merge 命令用于合并指定分支到当前分支
合并完成后,就可以放心删除
dev
分支了:git branch -d dev
删除后,查看
branch
, 就只剩下master
分支了:$ git branch
用
git log --graph
可以查看分支合并图 -
Bug 分支
当程序遇到bug时,可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。
比如,你临时接到一个立即修复代号为101的bug任务,你想创建一个分支
issue-101
来修复它, 但你手头正在dev
分支上进行的工作还没提交,而且工作只进行到一半。这时,
git stash
可以把当前工作现场储藏起来,等以后恢复现场后继续工作回到
dev
后,用git stash list
命令查看工作现场。git stash apply stash@{n} #对于多次stash,恢复指定的工作现场,stash并不删除, 可用 git stash drop 删除
git stash pop #恢复现场,同时删除stash内容
使用码云 gitee.com
Github 上提供了 免费的 公有 Git 仓库,私有库则需付费。国内 Git 托管服务 码云 则提供了免费的 Git 仓库,而且还包含免费私有库。 此外,还集成了代码质量检测,项目演示等功能。对于团队协作开发,码云还提供了项目管理、代码托管、文档管理的服务,5人以下小团队免费。
-
远程库分支管理
对于一个项目开发,远程库可以创建两个分支,其中包括一个
master
分支 和 一个测试分支,master
分支用于发布稳定版本,所以最好给予protect branch
保护分支权限,项目管理员来推送稳定版。 测试分支用于正常开发,项目成员均在该分支上进行开发,待测试通过后由管理员将该分支merge
进master
分支。git branch -a
可以查看本地及远程分支。比如远程库的测试分支名为test
,那么项目成员从远程库拉取代码:$ git pull <local branch name> test
工作完成后进行推送
$ git push <local branch name> tests
Git remote 用法
git rename <old> <new>