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 把临时的拿走到工作区
'''

冲突:文件重复修改 
需要程序员自己选择使用那个

解决冲突后再提交一次
bug修复
#默认分支是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 #直接把代码放到工作区
远程仓库(github)
#可以设置不同的权限
创建组织,组织内邀请成员

#协同开发
开发完成后合并解决冲突和bug后再提交
github设置
#fork
#把开源项目啦到自己github仓库,然后修改,再提交给开源项目。

#创建一对公钥和私钥
ssh-keygen.exe 
公钥放到github setting中
git clone ssh地址


#####其他####
上传文件可以筛选(如pyc缓存文件,测试数据库文件)
vim .gitingnore  #忽略正则匹配到的(但github已经做好了)
github开源项目
原文地址:https://www.cnblogs.com/drchen/p/7475380.html