Git 常用命令及场景

来源:互联网 发布:多益网络面试 策划 编辑:程序博客网 时间:2024/06/08 04:11

Git(版本控制工具)

作用:
1.备份文件(Git环境搭载在服务端,提交本地代码到服务端Git以后,记录会保存到服务器,实现文件的备份)
2.记录历史(Git中 git log 命令可以记录所有人提交的全部历史)
3.回到过去(Git中如果你的代码提交错误或者提交错了分支,可以撤销你提交的历史,回到你指定的代码版本状态)
4.多端共享(Git中只要你有Git项目地址,可以在很多终端上拉取代码)
5.团队合作(Git中主要是团队合作完成整个项目,自己提交自己的代码完成不同的功能)

版本工具发展历史:
cvs 集中式管理
svn 集中式管理
git 分布式管理
github 分布式管理

Git的优秀之处在于它追踪的是文件的修改,而不是文件本身
比如你修改一个文件,并add到暂存区,再修改这个文件,没有add到暂存区,直接提交了,那么第二次修改不会被提交到版本库
如果你想要第二次修改也提交,那必须再次将该文件add到暂存区提交才能生效

Git安装:
Ubantu:sudo apt-get install git
windows:直接下载安装
安装完成后,命令行输入:
git config –global user.name “Your Name”
git config –global user.email “email@example.com”

Git常用命令:

工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

文件的流程是:
工作区修改文件 -> add修改文件到暂存区 ->提交所有修改到本地当前分支

git init 在目录中执行这个命令指定该目录为git管理目录(当前目录下会生成一个.git文件夹)

git status 查看当前分支的工作状态

git add 文件名或者 “.” 添加修改或者新增的文件到暂存区,”.”为修改的所有文件

git commit -m “注释” 提交之前暂存区的文件到本地当前分支并填写注释

git commit -am “注释” 如果只有修改文件没有新增文件,这个命令可以直接把修改的文件添加并且提交

git diff “文件名” 如果执行git status发现有文件已经被修改,在不确定的情况下, 可以使用这个命令查看这个文件修改的地方

git diff HEAD –文件名 查看当年工作区和版本库的差别

git log 查看当前分支的历史所有提交记录

git log –pretty=oneline 查看当前分支的历史所有提交记录(只显示版本号和注释,更容易区分)

git reset “版本ID” 把当前分支回退指定的版本

git reflog 记录当前分支操作过的所有命令历史

例:
commit af27df788749eef072ce14ba65717016eb907e06
Author: yangtao yangtao2@doumi.com
Date: Mon Dec 12 14:25:18 2016 +0800
这里是commit的注释

commit:提交的版本ID(回退的重要标识)
Author:提交的作者
Data : 提交的时间
提交的注释

在Git中 HEAD标识当前版本 HEAD^ 表示上一个版本

git checkout “–文件名/.” 当前工作区如果有好多修改的文件,如果想要撤销对一个文件的修改,在checkout后面追加文件名,如果撤销全部修改,则直接使用”.”

git reset HEAD “文件名” 假设已经把工作区的修改添加到暂存区,如果想要撤销回来,使用这个命令则会把暂存区的这个文件撤回工作区

git rm “文件名” 删除工作区的文件,如果确定要删除,还需要使用commit命令,如果执行了错误删除,直接checkout即可还原

git remote add origin git@server-name:path/repo-name.git 关联一个远程仓库命令

git push -u origin master 首次往远程分支推送版本,首次推送需要加上-u

git clone git@github.com:michaelliao/gitskills.git 克隆一个git仓库到本地,地址请修改成自己的

git branch 查看分支,当前分支前面有*标识

git branch 创建新分支

git checkout -b 创建新分支并切换到新分支

git checkout 切换到分支

git merge 合并指定分支到当前分支

git branch -d 删除指定分支

当使用Git合并有冲突无法进行分支的快速合并时,需要解决冲突然后添加到暂存区再提交
git log –graph 分支的合并图

当在分支1进行开发的时候,功能还没开发完,需要切换到分支2去修改其他的BUG,由于分支1的功能没开发完,不能提交,改动地方多又不想放弃,这个时候就需要git stash命令
将当前工作区的所有改动进行备份(存储起来),并返回给你一个干净的工作区,让你可以去切换分支2,等在分支2把BUG修复完成之后上线之后,再切换到分支1,输入命令
git stash pop 把备份区指定的备份恢复到当前工作区

git stash list 查看备份区列表

git stash 把当前分支的工作区进行备份,执行此命令后,当前分支所有改动将会保存起来,并告你当前工作区是干净的,你可以随意的切换分支

git stash pop 把当前分支的工作区的修改还原,并删除备份ID

git branch -d “分支名” 删除一个分支

git branch -D “分支名” 强制删除一个分支

git remote (-v)查看远程Git仓库信息

git push origin dev 推送本地分支到远程

首先,可以试图用git push origin branch-name推送自己的修改;

如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

如果合并有冲突,则解决冲突,并在本地提交;

没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!

如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch –set-upstream branch-name origin/branch-name。

0 0
原创粉丝点击