git基本指令备忘
svn——集中式版本控制
git——分布式版本控制
工作流程
- 从远程仓库中clone资源到本地仓库。
- 从本地仓库checkout代码进行修改
- 将修改后代码add到暂存区
- commit修改到本地仓库
- push本地仓库修改到远程仓库
操作
创建版本库
git init
添加文件
1
2
3
4
5
61.添加文件到暂存区 .(或者文件名)
git add .
2.提交文件到master分支
git commit -m '提交日志'
3. 查看本地仓库的状态
git status工作区:电脑里能看到的目录
版本库:工作区有一个隐藏目录
.git
暂存区:版本库中有一个叫做stage(或者叫index)
修改文件
1
2
3
41.添加文件到暂存区
git add .
2.提交文件
git commit -m '日志'gitignore:
1
2
3
4
5
6
7.idea
*.iml
out
gen
target
*.class
*.log
远程仓库
1 | orgin是远程仓库的别名 |
fetch:从远程仓库获取最新版本到工作区,不会自动merge(合并代码)
pull:相当于是从远程获取最新版本并merge到本地工作区
1
2
3
4
5
6
7
8
9
10# 查看远程仓库
git remote -v
# 获取远程仓库代码到本地仓库,并且创建一个新的分支temp
git fetch origin master:temp
# 比较temp与本地master分支的不同
git diff temp
# 合并temp分支到master
git merge temp
# 删除temp分支
git branch -d temp
冲突
冲突原因:A和B两个人编辑同一个文件,A提交修改到本地仓库,推送远程仓库,B在未从远程仓库更新情况下修改相同文件(已过期),提交本地修改、推送到远程仓库时发生冲突
解决方案
- 尽量避免不同人修改同一个文件
- 如果修改相同文件,应该先更新再修改
- 冲突解决完成后,标记已解决,提交代码,双方都更新最新代码
分支管理
HEAD:指向当前正在使用分支的指针
master:创建仓库时,git默认创建一个master分支
master指向当前最新的提交,HEAD指向master
1
git branch
创建新分支dev
1
2dev:新分支名称 -b:创建并切换到dev
git checkout -b dev在dev分支上进行开发,master分支不变
1
2git add readme.txt
git commit -m "branch test"master分支合并dev分支
1
2切回master分支,再进行合并
git merge dev删除dev分支
1
2切回master分支,删除dev分支
git branch -d dev