git分布式文件版本管理系统
重要名词:1.版本库(理解为一个文件目录,改目录下会有一个隐藏的文件.git,此时表示该目录是一个版本库;.git中存放暂存区和本地仓库)
2.暂存区(index或stage):add操作将文件加入暂存区
3.本地仓库:commit -m "日志" ;commit 操作将文件加入本地仓库 ;commit相当于一次快照,可以在本地进行回滚
4.工作区:目录空间即为工作区
5.远程仓库(默认名origin):使用push 操作,将本地仓库的内容push到远程仓库
6.本地仓库和github使用ssh协议进行通信,需要将用户的公钥设置到github上
基本操作
1.当改乱工作区某个文件的内容时,想要丢弃工作区的修改,使用git checkout -- "目标文件名" (注意空格)
2.不但改乱工作区文件,还将此文件加入到暂存区,可使用git rest HEAD "文件名"恢复暂存区,然后使用第一步
恢复工作区
3.改乱的文件被加入到本地版本库,直接使用回滚操作吧
4.关联远程仓库 git remote add origin git@server-name:path/repo-name.git
5.git push -u origin master 推送本地仓库到远程仓库,并将本地master分支与远程master分支合并;第1次由于远程仓库为空,需要加-u参数,以后可直接使用 git push origin master
6.git支持多种协议 git clone git@github.com:michaelliao/gitskills.git 支持ssh协议,速度快
或者 git clone https://github.com:michaelliao/gitskills.git 支持https协议,速度慢
7.创建分支 两个程序员在同一代码上并行开发两个功能模块,这是两人分别开设一个分支进行开发
git checkout -b "分支名" 创建并切换到指定分支
git branch 查看当前分支
git branch "分支名"
git branch -d "分支名" 删除分支;使用-D 丢弃一个没有被合并过的分支,强行删除
git checkout "分支名" git checkout -b "分支名" "tag名" 按照标签名创建分支
git merge "分支名" 合并指定分支到当前分支(若我们在分支A上修改后,先切回master分支,然后执行此条命令,可将分支A合并到和master分支)
可以用使用 git log --graph 查看分支合并图;若存在冲突时,要先解决冲突,再合并
8.合并分支时 加上--no--ff ,会为分支创建一个快照commit,删除分支后,依然能够找到
9.stash操作 正在完成某项工作,但接到任务,需要修复某bug,但当前任务未完成,工作空间无法加入到暂存区和本地仓库
10.根据tag创建分支 git checkout -b "分支名" "tag名"