git
Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
git是由最早文件管理的方式延伸出svn,最后发展到如今的git更加方便快捷的代码管理工具(更准确的是版本控制软件)。
git的基本命令
git init #初始化仓库,它会在当前项目中创建一个.git的隐藏文件夹 git status#查看当前状态 git add files #把文件设置成绿色状态,把文件传到.git的暂存区, 此时可以committ(git add . 代表提交所有文件) git commit -m "提交的描述信息" #把为文件提交到一个分支
git ls-tree head # 查看分支的所有文件 git ls-files -s #查看所有暂存区和分支的文件
git log 回滚(无短信功能): git reset --hard 92dea56e57466115efab904a5f1d9adc361111e8 git reset --soft 版本号 ### 暂存区 git reset head 文件 ###新文件存在 git reset --mix 版本号 ###一步到head git check out 文件 ### 新文件不存在 git reset --hard 版本号 ###新文件不存在(一步到位) 再回去(回滚后在回去): git reflog # log更全,包括因回滚而消失的版本 git reset --mix 版本号 git checkout 文件名
git stash #把工作区所有的修改拿走,剩下的代码和线上一样 ''' 修复bug git add git commit 然后把工作一半的代码恢复 git stash list 查看临时目录的内容 git stash pop 把临时的拿走到工作区 ''' 冲突:文件重复修改 需要程序员自己选择使用那个 解决冲突后再提交一次
#默认分支是master(只保存线上版本) #一般还需要dev分支(开发分支) #dev 会copy一份master分支,开发N个版本后合并 git branch #查看当前分支 git branch dev #创建新分支(复制当前分支) check out dev #切换到新分支 #修改bug,单独创建个bug分支 git merge 分支 #合并,如果BUG没有问题,可以删除bug分支 git branch -d bug #删除bug分支
#一般公司会搭建gitlab作为远程仓库,少部分或个人使用github。 git remote add 名称 url #创建远程仓库 git push 仓库名称 #分支名称#上传到远程仓库 git clone url #下载远程仓库代码 git branch dev(别名) 仓库名/dev(远程别名) #下载其他分支 ###clone不推荐### 公司: git checkout dev git fetch 仓库名称 dev #相比pull 只是把仓库代码放到分支(本地) git pull #直接把代码放到工作区
#可以设置不同的权限 创建组织,组织内邀请成员 #协同开发 开发完成后合并解决冲突和bug后再提交
#fork #把开源项目啦到自己github仓库,然后修改,再提交给开源项目。 #创建一对公钥和私钥 ssh-keygen.exe 公钥放到github setting中 git clone ssh地址 #####其他#### 上传文件可以筛选(如pyc缓存文件,测试数据库文件) vim .gitingnore #忽略正则匹配到的(但github已经做好了)