一、基本操作
创建git本地仓库
打开git bash, 使用cd命令进入需要管理的目录
设置账户
$ git config --global user.name "xyz"
$ git config --global user.email "xyz@gmail.com"
最好与Github的账号保持一致
初始化
$ git init
该命令执行后会在本地仓库目录下生成隐藏目录 .git
新建文件
$ touch 1.py
也可以直接界面操作新建文件
管理流程
- 编辑文件:此时文件为untracked状态或unmodified状态
如果该文件为新建文件,未曾执行add操作,则文件为untracked
如果该文件之前曾执行add操作,其后又进行编辑,则文件为unmodified[红色M] - 添加文件管理
$ git add 1.py #modified状态[绿色M]
- 提交更新
$ git commit -m "name" #stage状态
命令小结
$ git add . #添加所有文件
$ git add x.abc #添加某一个文件
$ git commit -am "name" #add与commit两个操作一起
$ git commit --amend --no-edit #不改变log中的状态名字
查看命令
$ git status #详细状态
$ git status -s #简略状态
$ git diff #在使用git add 之前使用,查看修改部分
$ git diff --cached #在使用git add之后、git commit之前使用,查看修改部分
$ git log #详细日志
$ git log --oneline #简略日志
$ git reflog #所有改动,包括未commit的操作
版本回退——针对整个版本库
$ git reset --hard HEAD #回退至上一个版本
$ git reset --hard HEAD^ #回退至上上个版本
$ git reset --hard HEAD^^
$ git reset --hard HEAD~10 #回退至10个版本之前
$ git reset --hard HEAD~100 #回退至100个版本之前
$ git reset --hard bc1d630 #根据log中的id number指定回退版本
$ git reset --hard HEAD@{0} #根据reflog中的id number指定回退版本
版本回退——针对单个文件
$ git reset 1.py
$ git checkout 7f85ed5 -- 1.py
分支管理
$ git branch #查看
$ git branch dev #创建
$ git branch -d dev #删除
$ git checkout dev #切换到已有分支
$ git checkout -b dev #新建并切换到某分支
$ git merge dev #将dev合并到主分支master
#如有分支冲突需要手动更改,然后commit,再执行此命令
#修改文件内容为 "edited in master and dev"
临时修改
$ git checkout dev #当前正在dev分支下工作
$ git stash #暂停当前工作
$ git checkout -b boss #新建分支完成新任务
$ git commit -am "job from boss"
$ git checkout master
$ git merge --no-ff -m "merged boss job" boss
$ git commit -am "solve conflict"
$ git log --oneline --graph
$ git checkout dev #切换回原分支
$ git stash list #查看缓存
$ git stash pop #恢复之前的工作
二、连接github
- github上新建repository
- git bash中进入文件夹目录
- 链接
$ git remote add origin https://github.com/MYRLibra/gitTUT.git
#github自动生成此段代码
- 将分支推到云端
$ git push -u origin master #上传master分支
$ git push -u origin dev #上传dev分支
- 在本地再次编辑文件后,只需不断执行第4步
三、小结
使用git管理的关键操作:
- 在本地编辑修改代码文件
- 添加管理并提交
$ git add 1.py
$ git commit -m "chang 1"
$ git commit -am "change 1"
- 上传云端
$ git push -u origin master