Git 是一个开源的分布式版本控制软件,用以有效、高速的处理从很小到很是大的项目版本管理。html
GitHub、GitCafe、BitBucket和GitLab等是基于Git版本控制的远程文件托管平台。git
使用场景:github
PS:
集中式:远程服务器保存全部版本,用户客户端有某个版本
分布式:远程服务器保存全部版本,用户客户端有全部版本vim
参见:http://git-scm.com/服务器
PS: 注册GitHub、GitCafe、BitBucket和GitLab等帐户,以便于将文件托管在远程。app
git init 初始化 生成 .git 文件,用于保存git相关全部信息,如:每一个版本 git status 查看状态 git add 文件名或. '.'表示工做区被修改的全部内容 添加到暂存区。 git commit -m '对修改内容的描述信息' 从暂存区提交到分支。 配置用户信息: git config --local user.name '用户名' git config --local user.email '邮箱地址' git ls-tree head 查看版本中全部文件 git ls-files -s 查看暂存区和分支中全部文件 git log 查看已生效的操做日志 git reflog 查看全部日志 git reset --hard 后接log里的指定随机字符串 回滚到指定位置 git reset --mix 后接reflog日志里开头的前7位 再回滚到以前指定的位置 git checkout 文件名 切换到指定文件 git stash 将当前已经作过的修改,保存到一个临时地方 git stash pop 临时地方内容从新放回工做区,恢复并删除最近一次保存的内容 出现冲突,手动解决: """ <<<<<<< Updated upstream 以前的代码1 以前的代码2 ======= 以前的代码1 以前的代码2 开发直播功能到一半 >>>>>>> Stashed changes 手动解决结果: 以前的代码1 以前的代码2 开发直播功能到一半 """ git stash apply ‘名称’ 恢复指定名称的内容 git stash drop ‘名称’ 删除指定名称的内容 git stash list 查看全部临时空间里的全部内容 git stash clean 清空临时空间里的所有内容 master:只保留线上版本 dev: 保存全部开发版本 git branch dev 建立分支(会copy当前分支,注意当前分支的位置) git checkout dev 进入dev分支 git checkout master 切换到master分支 git merge dev 合并dev分支,注意必须在master分支上合并 git branch -d dev 删除dev分支
git remote add origin https://github.com/xxx/xxx.git 添加远程链接并取别名 origin git push origin master 将本地master分支推送至远程仓库 git clone https://github.com/xxx/xxx.git 从远程仓库克隆到本地目录 里面有config文件,自动配置链接地址 git branch dev origin/dev 克隆后只有master分支,同步其余分支 git fetch origin dev 从远程仓库获取最新内容到本地dev分支 git pull origin dev 从远程仓库获取最新内容到本地dev分支的工做区里的原内容区 “劲儿大”
详情见图:ssh
分支合并分布式
命令详解ide
fork,就是别人有一个开源项目,你发现里面有bug,能够fork别人的项目,进行修改。说直白一点,就是能够克隆一份到本地。fetch
当你下载到本地,进行修改完成之后,你push到你本身的GitHub,而后你但愿这个项目的开发者,采纳你修复的bug。你能够经过new pull request这个按钮向开发者发送你的描述信息。开发者认同你的代码的话,就有可能合并你的代码了。
开发新功能共有两种方式:
未完待续...
一、关于登陆
在链接GitHub的时候,是须要登陆的,登陆验证有两种方式:1、https://xxx.com 经过用户名和密码的方式;2、经过SSH链接,咱们在git命令行利用ssh-keygen.exe来生成公钥和私钥,公钥放在id_rsa.pub里面。拷贝里面的字符串,放在GitHub上我的设置里面有SSH and GPG keys里给设置上就齐活了。下次只要是SSH链接就不用管登陆验证的问题了,公钥和私钥会自动匹配验证。
二、忽略文件
咱们知道pycharm在生成新的project的时候,都会生成一个.pyc后缀结尾的文件,而这个文件基本上没什么用,因此,咱们在文件上传的时候,就能够过滤掉一些没用的文件,怎么过滤呢,咱们在git命令行vim .gitignore 进入后,在这个里面添加上咱们须要过滤掉的文件名,如:*.pyc a.py 等,这样在执行git status的时候,就会自动过滤掉文件里匹配的相关文件了。再文件上传的时候,就不会上传上去了,就完成了忽略文件的做用。
友情连接:请猛戳这里