文章目录
1. Gitee(Github)简单使用
- 步骤:1. 创建账户;2. 创建一个仓库;3. 将本地代码推送到远程仓库。
- 使用网址:https://blog.youkuaiyun.com/p445098355/article/details/104766195
Github
使用和Gitee
类似,由于国内上不了外网,以下在Gitee
中使用。
2. Gitee(Github)使用
1.1 上传代码
- 给远程仓库起别名
$ git remote add origin [远程仓库地址]
- 向远程推送代码
$ git push -u origin [分支名]
1.2 新电脑下载代码
- 克隆远程代码
$ git clone [远程仓库地址]
- 切换分支(在新电脑上进行开发的时候,要在分支中进行代码操作)
$ git checkout [分支]
- 一次克隆代码之后,不用重复克隆,直接使用
pull
来复制代码
$ git pull
1.3 公司下载后继续开发
- 切换到
slave1
[分支]进行开发
$ git checkout slave1
- 把
master
合并到slave1
[分支]
$ git merge master
- 代码修改后,提交代码
$ git add .
$ git commit -m "xxx"
$ git push origin slave1
1.4 开发完毕,上线
- 将
slave1
分支合并到master
,进行上线
$ git checkout master
$ git merge slave1
$ git push origin master
1.5 忘记上传到仓库时
- 在家拉代码时,发现并没有公司的代码
$ git pull origin slave1
- 无奈,继续开发其他功能
- 将
slave1
分支也推送到远程
$ git add .
$ git commit -m "xxx"
$ git push origin slave1
- 在公司继续写代码
- 拉代码,将昨天在家的代码拉回本地(可能存在冲突)
git pull origin slave1
-
解决冲突,继续开发
-
把
slave1
分支推动到远程
$ git add .
$ git commit -m "xxx"
$ git push origin slave1
1.6 注意
- 上传代码时候,首先
$ git pull
3. Rebase
- 变基,使代码的提交记录更加简洁
- 案例:
$ mkdir Rebase-demo
$ cd Rebase-demo
$ git init
提交第一次
$ touch 1.py
$ git add .
$ git commit -m "v1"
提交第二次
$ touch 2.py
$ git add .
$ git commit -m "v2"
提交第三次
$ touch 3.py
$ git add .
$ git commit -m "v3"
查看记录
$ git log
$ git rebase -i [版本号]
会提示相对应的参数
pick 2e342ba v2
pick e1c4532 v3
# Rebase 9919d24..e1c4532 onto 9919d24 (2 commands)
#
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
# e, edit <commit> = use commit, but stop for amending
# s, squash <commit> = use commit, but meld into previous commit
# f, fixup <commit> = like "squash", but discard this commit's log message
# x, exec <command> = run command (the rest of the line) using shell
# b, break = stop here (continue rebase later with 'git rebase --continue')
# d, drop <commit> = remove commit
# l, label <label> = label current HEAD with a name
# t, reset <label> = reset HEAD to a label
# m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
# . create a merge commit using the original merge commit's
# . message (or the oneline, if no original merge commit was
# . specified). Use -c <commit> to reword the commit message.
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out
- 合并记录。
$ git rebase -i HEAD~2
- 将
pick e1c4532 v3
修改为s e1c4532 v3
, 保存 - 将
v2 # This is the commit message #2 v3
改为v2 & v3
,保存 - 系统会提示成功rebase
$ git log
- 修改记录(最后一条记录名称)
$ touch 4.py
$ git add .
$ git commit -m 'v4'
$ git commit --amend
- 修改任意一条记录
$ git rebase -i [记录号]
- 修改名称使用参数
r
,保存
4. 多人协同开发工作流
创建项目&邀请成员
协同开发时,需要所有成员都可以对同一个项目进行操作,需要邀请成员并赋予权限,否则无法开发。 github支持两种创建项目的方式(供多人协同开发)。
- 1.合作者,将用户添加到仓库合作者中之后,该用户就可以向当前仓库提交代码。
- 2.组织,将成员邀请进入组织,组织下可以创建多个仓库,组织成员可以向组织下仓库提交代码。
成员开发
注册Github或Gitlab账号
- 邀请成员进入组织(默认对组织中的项目具有读权限)
- 邀请成员成为某项目的合作者
code review
- 配置,代码review之后才能合并到dev分支
- 成员提交code review申请
- 组长做 code review
提测上线(预发布)
由专门团队或团队Leader执行以下步骤
1.基于slave1
分值创建release
分值
git checkout slave1
git checkout -b release
2.测试等
3.合并到master
使用 pull request
本地将release合并到master分支
4.在master分支打tag
git tag -a v2 -m '第二版 斗地主功能'
git push origin --tags
5.运维人员就可以去下载代码做上线了
git clone -b v2 地址
给开源项目贡献代码
- 1.fork源代码将别人源代码拷贝到我自己的远程仓库。
- 2.在自己仓库进行修改代码
- 3.给源代码的作者提交修复bug的申请(pull request)
多个项目
创建一个组织,可以放许多项目。
Gitee(Github)
中创建一个组织。- 在组织中创建一个新的仓库。
- 在本地项目中,先连接组织。
$ git remote add origin [连接]
$ git push -u origin master
- 设置标签,提交标签
$ git tag -a v1 -m 'v1'
$ git push origin --tags
- 创建分支
slave1
$ git branch slave1
$ git checkout slave1
$ git push origin slave1
- 创建新的分支
slave2
给成员使用
$ git branch slave2
$ git checkout slave2
- 在
slave2
中开发
$ touch ddz.py
$ git add .
$ git commit -m "ddz"
$ git push origin slave2
- 进行
review
,在Gitee
的仓库中选择Pull Requests
进行合并。
5. 配置文件存放三个位置
- 项目配置文件:项目/.git/config
git config --local user.name 'juran'
git config --local user.email 'juran@xx.com
- 全局配置文件:~/.gitconfig
git config --global user.name 'juran'
git config --global user.name 'juran@xx.com
- 系统配置文件:/etc/.gitconfig
git config --system user.name 'juran'
git config --system user.name 'juran@xx.com'
注意:需要有root权限
免密码登录
- URL中体现
原来的地址:https://github.com/juran/dbhot.git
修改的地址:https://用户名:密码@github.com/juran/dbhot.git
git remote add origin https://用户名:密码@github.com/juran/dbhot.git
git push origin master
- SSH实现
1.生成公钥和私钥(默认放在~/.ssh目录下,id_rsa.pub公钥、id_rsa私钥) ssh-keygen
2.拷贝公钥的内容,并设置到github中。
3.在git本地中配置ssh地址
git remote add origin git@github.com:juran/dbhot.git
4.以后使用
git push origin master
git忽略文件
让Git不再管理当前目录下的某些文件。
*.h
!a.h
files/
*.py[c|a|d]
更多参考:https://github.com/github/gitignore
github任务管理相关
- issues,文档以及任务管理。
- wiki,项目文档。