一. 文件版本管理历史
传统版本管理, svn ,git
二.git基本原理
这个图右侧,一般直接pull 命令执行后, 效果是远程代码直接提交到本地仓库的(工作区间也更新了),只有需要解决冲突时才到工作区间让手动解决冲突再提交
三.git 常用命令和实际使用演练
git配置 记住登陆用户密码,配置ssh方式登陆,配置username mail地址
.gitignore 文件
git命令缩写
- git init //初始化本地git环境
- git clone XXX//克隆一份代码到本地仓库
- git pull //把远程库的代码更新到工作台
- git pull --rebase origin master //强制把远程库的代码跟新到当前分支上面
- git fetch //把远程库的代码更新到本地库
- git add . //把本地的修改加到stage中
- git commit -m 'comments here' //把stage中的修改提交到本地库
- git push //把本地库的修改提交到远程库中
- git branch -r/-a //查看远程分支/全部分支
- git checkout master/branch //切换到某个分支
- git checkout -b test //新建test分支
- git checkout -d test //删除test分支
- git merge master //假设当前在test分支上面,把master分支上的修改同步到test分支上
- git merge tool //调用merge工具
- git stash //把未完成的修改缓存到栈容器中
- git stash list //查看所有的缓存
- git stash pop //恢复本地分支到缓存状态
- git blame someFile //查看某个文件的每一行的修改记录()谁在什么时候修改的)
- git status //查看当前分支有哪些修改
- git log //查看当前分支上面的日志信息
- git diff //查看当前没有add的内容
- git diff --cache //查看已经add但是没有commit的内容
- git diff HEAD //上面两个内容的合并
- git reset --hard HEAD //撤销本地修改
- git add .
git stash
:保存当前工作区和暂存区的修改。- git checkout bugFixBranch
- git pull --rebase origin master
- fix the bug
- git add .
- git commit -m ''
- git push
- git checkout test
- git stash pop
git push origin --delete Chapater6 可以删除远程分支Chapater6
可以使用 git reset --hard HEAD^ 来回退到上一次commit的状态。此命令可以用来回退到任意版本:git reset --hard commitid
git checkout -- filepathname (比如: git checkout -- readme.md ,不要忘记中间的 “--” ,不写就成了检出分支了!!)。放弃所有的文件修改可以使用 git checkout . 命令。
* git revert HEAD 撤销前一次 commit
* git revert HEAD^ 撤销前前一次 commit
* git revert commitId (比如:fa042ce57ebbe5bb9c8db709f719cec2c58ee7ff)撤销指定的版本
四.深入理解git
工作区,暂存区 ,
五.git源码
略
附录: 从零开始使用git步骤
本地新建git工程,然后上传到远端
按照GitHub的提示一步步来实现:
- 先cd到你要上传代码的目录(一定是空文件夹,可以用命令行直接创建一个新文件夹
mkdir 文件名
).cd /Users/xxx/Desktop/xxxx/xxxx/Test
- 添加一个自述文件README.md
touch README.md
- 初始化仓库,成功会有提示
git init
Initialized empty Git repository in ......
- 添加 自述文件README.md,我这个时候把自己的代码也放到Test这个文件夹下面了.
git add README.md
(添加单个目录)git add .
(. 这里是添加整个目录) - 提交到本地
git commit -m "Initial commit"
- 输入你要提交的git地址,直接粘过来
git remote add origin https://github.com/weidongfei/Test.git
- 最后push到网上git仓库中 ~
git push -u origin master
思考解决场景:
实际提交代码,并merge,解决冲突
实际提交代码,并rebase,解决冲突
remote分支被删除
撤销本地未commit修改
撤销本地已经commit 但未push修改