git是一个分布式的版本控制软件。
要保留之前所有的版本,以便回滚和修改
详见:https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git
想要让git对一个目录进行版本控制需要以下步骤:
git init
git status
注:新增的文件和修改过的文件都是红色
git add 文件名
git add .
git config --global user.email ''[email protected]''
git config --global user.name ''your Name''
git commit -m '描述信息'
git log
git add
git commit -m '短视频'
git log
git reset --hard 版本号
git reflog
git reset --hard 版本号
git init
git add
git commit
git log
git reflog
git reset --hard 版本号
分支可以给使用者提供多个环境的克隆,意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。
查看分支
git branch
创建分支
git branch 分支名称
切换分支
git checkout 分支名称
分支合并(可能产生冲突)
git merge 要合并的分支
注意:切换分支再合并
删除分支
git branch -d 分支名称
首先,需要注册GitHub账号,并创建远程仓库,然后再执行如下命令,将代码上传到GitHub。
1. 给远程仓库起别名
git remote add origin 远程仓库地址
2. 向远程推送代码
git push -u origin 分支
1. 克隆远程仓库代码
git clone 远程仓库地址 (内部已实现git remote add origin 远程仓库地址)
2. 切换分支
git checkout 分支
在公司下载代码后,继续开发
1. 切换到dev分支进行开发
git checkout dev
2. 把master分支合并到dev【仅一次】
git merge master
3. 修改代码
4. 提交代码
git add .
git commit -m 'xx'
git push origin dev
1. 切换到dev分支进行开发
git checkout dev
2. 拉代码
git pull origin dev
3. 继续开发
4. 提交代码
git add .
git commit -m 'xx'
git push origin dev
1. 切换到dev分支进行开发
git checkout dev
2. 拉最新代码(不必再clone,只需要通过pull获取最新代码即可)
git pull origin dev
3. 继续开发
4. 提交代码
git add .
git commit -m 'xx'
git push origin dev
开发完毕,要上线
1. 将dev 分支合并到master分支,进行上线
git checkout master
git merge dev
git push origin master
2. 把dev分支也推送到远程
git checkout dev
git merge master
git push origin dev
1. 拉代码
git pull origin dev
2. 继续开发
3. 提交代码
git add .
git commit -m 'xx'
注:忘记push了
1. 拉代码,发现在公司写的代码忘记提交了
git pull origin dev
2. 继续开发其他功能
3. 把dev分支也推送到远程
git add .
git commit -m 'xx'
git push origin dev
1. 拉代码,把晚上在家写的代码拉到本地(有合并、可能产生冲突)
git pull origin dev
2. 如果有冲突,手动解决冲突
3. 继续开发其他功能
4. 把dev分支也推送到远程
git add .
git commit -m 'xx'
git push origin dev
git pull origin dev
等价于
git fetch origin dev
git merge origin/dev
rebase可以保持提交记录简洁,不分叉。
安装beyond compare
在git中配置
git config --local merge.tool bc3
git config --local mergetool.path '/user/local/bin/bcomp'
git config --local mergetool.keepBackup false
应用beyond compare解决冲突
git mergetool
添加远程连接(别名)
git remote add origin 地址
推送代码
git push origin dev
下载代码
git clone 地址
拉取代码
git pull origin dev
等价于
git fetch origin dev
git merge origin/dev
保持代码提交整洁 (变基)
git rebase 分支
记录图形展示
git log -- graph --pretty=format:"%h %s"
协同开发时,需要所有成员都可以对同一个项目进行操作,需要邀请成员并赋予权限,否则无法开发。
github支持两种创建项目的方式(供多人协同开发)
扩展:Tag标签管理
为了能清晰的管理版本,在公司不会直接使用commit 来做版本,会基于Tag来实现:v1.0、v1.2、v2.0版本。
git tag -a v1.0 -m '版本介绍' 创建本地创建tag信息
git tag -d v1.0 删除tag
git push origin --tags 将本地tag信息推送到远程仓库
git pull origin --tags 更新本地tag版本信息
git checkout v.10 切换tag
git clone -b v0.1 地址 指定tag下载代码
git clone 地址
git checkout dev
git checkout -b dzz
写代码...
git add .
git commit -m '斗地主功能完成'
git push origin ddz
由专门团队或团队leader执行以下步骤:
git checkout dev
git checkout -b release
测试等
合并到master
使用pull request
或
本地release合并到master分支
git tag -a v2 -m '第二版 斗地主功能'
git push origin --tags
5.运维人员就可以去下载代码做上线
git clone -b v2 地址
git config --local user.name '用户姓名'
git config --local user.email '邮箱'
git config --global user.name '用户姓名'
git config --global user.email '邮箱'
git config --system user.name '用户姓名'
git config --system user.email '邮箱'
注意需要root权限
应用场景:
git config --local user.name ‘用户姓名’
git config --local user.email '邮箱'
git config --local merge.tool bc3
git config --local mergetool.path '/usr/local/bin/bcomp'
git config --local mergetool.keepBackup false
git remote add origin 地址 ,默认添加在本地配置文件中(--local)
SSH实现
1. 生成公钥和私钥(默认放在~/.ssh目录下,id_rsa.pub公钥、id_rsa私钥) ssh-keygen
2. 拷贝公钥的内容,并设置到github中
3. 在git本地中配置ssh地址
git remote add origin [email protected]:WuPeiqi/dbhot.git
4. 以后使用
git push origin master
*.h
!a.h
files/
*.py[c|a|d]
更多参考:https://github.com/github/gitignore