git 命令
git版本控制器 # 分布式版本控制系统
主要功能: 多人开发时的代码合并
有一个历史版本的记录, 支持恢复
安装:
sudo apt-get install git
配置:
vim .gitconfig
修改为注册github时的邮箱, 填写用户名, 要求组员的用户名不能重复
[user]
email =
xxxxxxxxx@qq.com
name = itcast
创建版本库
注册账户,登录后, 点击"start project
在新页面中,输入项目的名称,勾选'readme.md',点击'create repository'
添加成功后,转到文件列表页面,点击'create new file'创建新文件
填写文件名称为'.gitignore',代码如下,表示项目中的pyc文件不需要被管理,因为这些文件代码是根据py生成的
点击'preview'查看预览,点击'create new file'完成创建
添加ssh账户
如果某台机器需要与github上的仓库交互,那么就要把这台机器的ssh公钥添加到这个github账户上
点击账户头像后的下拉三角,选择'settings'
点击'SSH and GPG keys',添加ssh公钥
生成 git秘钥
删除~/.ssh目录 这里存储了旧的秘钥
rm -r .ssh
生成秘钥
ssh-keygen -t rsa -C "Github账号,可以是用户名,也可以是邮箱地址"
查看并复制内容
cat id_rsa.pub
填写标题, 粘贴公钥
克隆项目
点击github首页, 再进入项目仓库的页面
复制 git地址
在命令行中复制仓库中的内容
git clone git地址
# 错误处理
如出现错误信息如下
sign_and_send_pubkey: signing failed: agent refused operation
原因是没有加入新生成的密钥
解决:
将密码加入ssh账户
逐条运行如下命令
eval "$(ssh-agent -s)"
ssh-add
创建项目分支
项目开发中分支包括 master, dev
master用于发布, ,默认发布, 当需要发布时将dev分支合并
dev 用于开发阶段性的代码合并, 每个阶段的工作完成后需要进行一次,控制项目的进度
成员分支用于每个成员的代码开发, 互不交叉
cd 到项目目录中
创建分支
git branch 分支名称例:git branch dev
切换分支
git checkout 分支名称例:git checkout dev
将分支推送到服务器
git push origin 分支名称例:git push origin dev
将本地分支跟踪服务器分支
git branch --set-upstream-to=origin/分支名称 分支名称例:git branch --set-upstream-to=origin/dev dev
创建并切换分支
git checkout -b 分支名称例:git checkout -b itcast
查看所有分支, 有星星标记的为当前分支
git branch
删除分支
git branch -d 分支名称
添加文件到git仓库
第一步 git add 文件名称 # 添加到仓库
第二步 git commit -m "提交说明" # 提交代码
上传分支
git push origin dev # 将本地分支推送到远程分支
合并分支
git checkout 主分支名 # 先切换到主分支
git merge 次分支名 # 再合并
推送到远程
git push origin 合并完的分支
获取最新代码
git fetch
获取最新代码并合并
git pull
调试分支
保存现场
git stash
恢复现场
git start pop
常用命令
git status # 查看当前是否有文件被修改
git add 目录 # 将目录或文件添加到暂存区
git checkout -- 文件名 # 撤销修改
git commit -m '本次提交的说明信息' # 将暂存区的记录提交到仓库
git push # 获取当前分支上最新的代码
对比
git diff # 查看文件具体做了什么修改
git diff HEAD -- df_user/models.py # 对比工作区和仓库区中某版本某文件的不同
版本回退
git reset --hard HEAD^ # 回退到上一个版本
# HEAD 当前版本
# HEAD^ 上一个版本
# HEAD ^^ 上上版本
# HEAD~100 上100个版本
git reset --hard 版本id # 回退到指定版本
git reflog # 查看命令历史
git log # 查看提交记录
删除
在ide中将文件删除
从工作区到暂存区提交
git rm 文件名
从暂存区到仓库区提交
git commit -m '说明信息'