大一的时候 基本的学了一遍GIT 后来入了python web的坑 发现周围就我一个写PY的做项目都是后台自己写 所以基本就服务器直接开发了然后直接给别人用 考虑到这不是长久之计 学习 docker 和 git 进行 环境控制 版本控制
基本提交与使用
#初始化仓库:
git init
#将本地库与远程仓库关联:
git remote add origin git@github.com:CCyutaotao/***.git
文件准备
#提交新文件 修改过的文件 不包括被删除的文件 新建远程库后 第一次push可以使用 .
git add .
#提交所有变化
git add -A
#提交修改的和删除的 不包括新文件
git add -u
#本地commit
git commit -m 'some message'
向远程库提交(push)
#第一次推送
git push -u origin master
#之后只要本地commit之后,直接
git push origin master
从远程拉取(pull)
下载
git clone
从远程获取最新版本merge到本地
git pull origin master
分支与版本信息
#本地分支/远程分支/全部分支
git branch /git branch -r /git branch -a
#新建分支/切换分支/新建并切换
git branch dev/ git checkout dev/git branch -b dev
#合并分支到当前分支
git merge dev
#删除本地分支/删除远程分支
git branch -d dev/ git push origin --delete dev
#同步本地远程分支
git fetch
远程分支:
从远程分支 checkout 出来的本地分支,称为 跟踪分支 (tracking branch)。跟踪分支是一种和某个远程分支有直接联系的本地分支。在跟踪分支里输入 git push,Git 会自行推断应该向哪个服务器的哪个分支推送数据。同样,在这些分支里运行 git pull 会获取所有远程索引,并把它们的数据都合并到本地分支中来。
#显示有变更的文件
git status
#显示当前分支的版本历史
git log
#显示commit历史,以及每次吃commit发生变更的文件
git log --stat
标签
# 列出所有tag
git tag
# 新建一个tag在当前commit
git tag tag_name
# 新建一个tag在指定commit
git tag tag_name commit_id
# 删除本地tag
git tag -d tag_name
# 删除远程tag
git push origin :refs/tags/tag_name
# 查看tag信息
git show tag_name
# 提交指定tag
git push remote_name tag_name
# 提交所有tag
git push remote_name --tags
# 新建一个分支,指向某个tag
git checkout -b branchname tag_name
撤销
#重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
git reset file_name
# 重置暂存区与工作区,与上一次commit保持一致
git reset --hard
# 重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变
git reset commit_id
# 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致
git reset --hard commit_id
#新建一个commit用来撤销指定commit 后者的所有变化都将被前者抵消,并且应用到当前分支
git revert commit_id