(提示:因为详细,建议新手边看边操作效果出乎你的预料哦!撒!)
一:Git是什么?
Git是目前世界上最先进的分布式版本控制系统。
Workspace:工作区
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Remote:远程仓库
二:SVN与Git的最主要的区别?
1.SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。
2.Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
【GIT下载地址】
【tortoisegit下载地址】
【GIT和tortoisegit安装】
(1). 返回上一级目录:cd … (cd 与 … 之间有一空格)。
(2). 进入某一目录:cd git (进入 git 目录)。
(3). 显示当前路径:pwd。
新建文件/编辑文件:
1,touch+文件名,直接新建一个文件
2,vi+文件名,新建一个文件并进入编辑状态(如果文件已存在,则直接进入编辑状态)
1.git常用命令
git status -s:查询repo的状态,-s表示short,输出标记有两列,第一列是对staging区域,第二列是working目录
git log :显示每条分支的合并历史
–oneline –graph:可以图形化表示分支合并历史
–author=[author name]:指定作者提交历史
git add . :添加当前工作目录中的所有文件
git commit:提交已经被add进来的改动
2.git的分支操作命令:
git branch -b name:创建分支
git branch:查看当前目录的分支
git branch -d name:删除分支
git push origin:name :删除远程分支
git checkout name:切换分支
git checkout –file:撤销修改
git rm file :删除文件
git log –graph :分支情况图
git init #通过命令 git init 把这个目录变成git可以管理的仓库
git add readme.txt #使用命令 git add readme.txt添加到暂存区里面去
git commit -m “提交readme” #用命令 git commit告诉Git,把文件提交到仓库
git status #通过命令git status来查看是否还有文件未提交
git diff readme.txt #readme.txt文件到底改了什么内容,如何查看
git add readme.txt
git commit -m “新修改readme”
git log #我现在想查看下历史记录,如何查,git log命令显示从最近到最远的显示日志
(git log --pretty=oneline # 一条信息显示一行)
git reset --hard HEAD^
(git reset --hard HEAD^^,git reset --hard HEAD~100 #回退俩个及以上)
cat readme.txt #通过命令cat readme.txt查看
git log --pretty=oneline
【回退后-想回到最新版(git reset --hard 版本号)。不知道版本号的情况下:(先 git reflog 查看版本号),再执行:git reset --hard 6fcfc89】
git add readme.txt
git add readme01.txt
git stauts
git commit -m “同时提交”
git stauts
Git撤销修改:
git stauts
git checkout – readme.txt (#在19年8月份发布的Git2.23版本中,已经使用了新命令“git restore”来替代“git checkout”的文件恢复功能)
Git删除文件:
git add readme02.txt
git commit -m “删除该文件”
rm readme02.txt
git checkout – b.txt (#在19年8月份发布的Git2.23版本中,已经使用了新命令“git restore”来替代“git checkout”的文件恢复功能)
git remote add origin [email protected]:mwj-test01/mmxxx.git #远程同步
(#如果远程无法同步,需要配置用户名和邮箱名)
(# git config --global user.name “你的用户名”)
(#git config --global user.email “你的邮箱名”)
git add mwj.txt
git commit -m “…”
git push -u origin master
(SSH免密链接gitlab)
git checkout -b dev01 #加上 –b参数表示创建并切换
git branch -a #列出所有的分支
git checkout -b fenzhi1
git add mwj.txt
git commit -m “m03”
git checkout master
git merge fenzhi1
(冲突:先修改同一个地方的冲突,再提交。)
另一种合并:
git merge --no-ff -m “…” fenzhi1 #(合并dev分支 -no-ff表示禁用fast forweord, 这样删除的分支还会显示在(git log )里边。)
git log --greph --pretty=oneline --addrev-commit
(开发中临时加分支,要用到隐藏功能 stash)
git stash #隐藏当前分支
git status
git checkout dev
git checkout master
git merge --no-ff -m “…” fenzhi1
git branch -d fenzhi1
#我们工作现场去哪里看呢
git stash list
#恢复方法1:
git stash apply (#stash内容并不删除,你需要使用命令git stash drop来删除)
#恢复方法2:
git stash pop (#恢复的同时把stash内容也删除了)
git remote #要查看远程库的信息 使用
git remote –v #要查看远程库的详细信息 使用
git push origin dev
(#有冲突,先用git pull把最新的提交从origin/dev抓下来,然后在本地合并,解决冲突,再推送。)
(#git pull也失败,原因是没有指定本地dev分支与远程origin/dev分支的链接,根据提示,设置dev和origin/dev的链接)
git branch --set-upstream dev origin/dev (#再git pull)
(#有冲突-解决冲突后)
git push origin dev
Git使用教程-有图