Git基本命令-创新互联

Git 是一种分布式版本控制系统

为景东等地区用户提供了全套网页设计制作服务,及景东网站建设行业解决方案。主营业务为成都网站制作、成都做网站、景东网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

创建版本库
   mkdir dirname 新建目录
   cd dirname
   git init  把该目录变成 Git 仓库

   该目录下有个 .git 隐藏目录,不要去改这个目录里的文件

添加文件
   git add filename.txt

把文件提交给仓库
   git commit -m "xxx"         -m后面输入的是本次提交的说明

查看仓库当前状态
   git status

比较修改了什么内容
   git diff filename.txt

查看提交的历史
   git log  命令显示从最近到最远的提交日志

   git log --pretty=oneline       每个版本只输出一行(commit id 和 提交说明)

查看提交的命令历史
   git reflog

你看到的一大串字符是commit id(版本号)

在Git中,用HEAD表示当前版本,上一个版本是HEAD^,上上版本是HEAD^,往上前 n 个版本是 HEAD~n

git reset --hard HEAD^  回退到上一版本

git reset --hard 版本号 到该commit id 号对应的版本 commit id 可以不写全,但一定要写到 Git可以区分的程度

工作区和暂存区的概念

dirname 就是一个工作区

工作区里的隐藏目录 .git ,不算工作区,是 Git 的版本库

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

git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支。

Git 管理的是修改。你第一次修改 filename.txt 并执行 git add ,把它提交到暂存区,第二次修改 filename.txt 不添加,执行 git commit

你会发现只有第一次的修改被提交了,第二次没有被提交。      git commit 只负责暂存区中的内容

每次修改,如果不add到暂存区,那就不会加入到commit中

撤销修改
   场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- filename

   场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD filename(HEAD表示最新版本),就回到了场景1,
   第二步按场景1操作。

   场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,回退一个版本。

删除文件

   rm filename

   Git 会记录下来,使用 git status 会告诉你哪些文件被删除了

   如果确实要从版本库中删除,用 git rm 删掉,并且要用 git commit

   如果误删 用 git checkout -- filename  git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;

关联后,使用命令git push -u origin master第一次推送master分支的所有内容;

此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改

克隆一个仓库,git clone 仓库的地址

查看分支:git branch

创建分支:git branch

切换分支:git checkout

创建+切换分支:git checkout -b

合并某分支到当前分支:git merge

删除分支:git branch -d

用git log --graph命令可以看到分支合并图。
git log --graph --pretty=oneline --abbrev-commit

分支策略
   git merge --no-ff -m "merge with no-ff" dev
   合并分支 加 --no--ff 表示以普通模式合并,-m 说明,合并后的历史有分支,能看出来曾经做过合并,
   通常,合并分支时,如果可能,Git 会使用Fast forward模式,而这种模式合并后看不出曾经做过合并。

git stash
   把当前工作现场储存起来,以后可以恢复现场继续工作,像快照

git stash list 查看存的工作现场

恢复工作现场
   git stash apply 恢复,恢复后 stash 内容不会删除,需要用 git stash drop 来删除

   git stash pop ,恢复的同时把 stash 内容也删除

强制删除一个没有被合并过的分支
   git branch -D

查看远程库信息,使用git remote -v;

本地新建的分支如果不推送到远程,对其他人就是不可见的;

从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;

在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;

建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;

从远程抓取分支,使用git pull,如果有冲突,要先处理冲突

创建标签

   命令git tag 用于新建一个标签,默认为HEAD,也可以指定一个commit id;

   git tag -a -m "blablabla..."可以指定标签信息;

   git tag -s -m "blablabla..."可以用PGP签名标签;

   命令git tag可以查看所有标签。

管理标签

   命令git push origin 可以推送一个本地标签;

   命令git push origin --tags可以推送全部未推送过的本地标签;

   命令git tag -d 可以删除一个本地标签;

   命令git push origin :refs/tags/可以删除一个远程标签。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章题目:Git基本命令-创新互联
网站地址:http://scyanting.com/article/coihpg.html