Heim >Web-Frontend >HTML-Tutorial >git语言_html/css_WEB-ITnose

git语言_html/css_WEB-ITnose

WBOY
WBOYOriginal
2016-06-24 11:32:401088Durchsuche

安装完成后,需要进一步设置用户名和email。因为git是分布式版本控制工具,因此需要每台开发机自报家门。

$ git config --global user.name "Your Name"$ git config --global user.email "email@example.com"

其中--global表示将设置内容配置到全局,这样整个系统的用户都应用这个设置。后面我们还将介绍直接在配置文件中设置的方法。

git的各种命令

git init - 初始化版本库
git add - 将增加或修改内容放到暂存库
git commit - 提交暂存库的内容
git status - 查看状态
git diff - 比较两次版本的不同
git log - 查看版本日志
git reflog - 查看执行的命令日志
git reset - 回退历史版本
git rm - 从版本库中删除
git checkout - 切换分支
git branch - 创建或查看分支
git merge - 合并分支
git stash - 存储工作区
git tag - 创建或查看标签
git remote - 查看远程版本库的名称
git push - 推送本地库版本到远程库
git pull - 从远程库拉取到本地库
git clone - 从远程或本地克隆版本库到指定位置

将空目录或者有内容的目录加入到git版本控制器中,由git来跟踪并管理。

git init

命令执行完后,会在当前目录下生成一个.git的目录,该目录是隐藏的。这个目录不能轻易改动,里面保存着所有的git配置。

git add

将增加或修改的文件保存到暂存库中。

git add [文件]

将所有改动的文件都存放到暂存库。

git add -A

git commit

将暂存区的内容提交到版本库。每次提交都必须将提交的注释加上。

git commit -m "注释" 

如果文件的修改或删除没有通过add或rm放入暂存区,也可以通过加入-a的参数直接提交。(增加必须通过add加入暂存区)

git commit -a -m "注释"

git status

查看文件有没有被修改的状态,无论文件是否放入暂存区,只要git监控到文件增加、修改、删除,都可以使用该命令来查看。

git status

git diff

比较未提交到暂存区的修改和上个版本的差别。

git diff [文件]

比较所有提交到暂存区的文件。

git diff

git log

查看操作日志,记录所有提交后的版本信息。可以根据日志信息回退到指定的版本。

git log

查看分支合并图

git log --graph
格式化显示效果

$ git log --graph --pretty=oneline --abbrev-commit

git reflog

查看所有执行的命令历史。

git reflog

git reset

回退历史版本。如果执行提交后又反悔了,可以通过该命令进行回退。

回退到当前版本,比如放弃当前未提交的修改。

git reset --hard head

如果要回退上一个版本,则改成

git reset --hard head~1

head~后面跟数字,表示回退到从当前版本往回数第几个版本。

也可以指定回退到某一个版本。首先通过git log,查看版本的id号,再根据id号来回退。id号可只写前四位。

git reset --hard [id]

git rm

删除文件有两种方式

  1. 直接从文件夹中删除,但是版本库中并没有被删,如果需要提交版本库就要用到git rm,再使用git commit提交。

  2. 使用git rm删除,文件会从版本库和工作区都删除,然后使用git commit提交。

用法:

git rm [文件]

git checkout

切换分支。

git checkout [分支名称]

创建并切换到该分支。

git checkout -b [分支名称]

git branch

查看分支。

git branch

创建分支。

git branch [分支名称]

删除分支。

git branch -d [分支名称]

如果删除的分支没有被合并,需要进行强制删除。

git branch -D [分支名称]

git merge

快速合并,直接改变合并分支的指针。如果合并的分支间有冲突,则需要手动解决冲突后再提交。git merge [合并的分支名称]

快速合并分支后,如果删除分支则日志记录中不会记录分支合并的操作。如果希望能记录分支合并的操作,则需要禁用快速合并。

git merge --no-ff

git stash

存储当前工作区。如果任务进行到一半,需要解决其他版本的问题,比如修复BUG。当前进行的操作可暂时保存下来,解决问题再恢复。

git stash

查看所有保存的工作现场。

git stash list

恢复保存的工作现场。git stash apply [工作现场名称]

恢复后删除工作现场
git stash drop [工作现场名称]

恢复最后保存的工作现场并同时删除

git stash pop

git tag

给最新的版本加上标签。

git tag [标签号]

给历史版本加上标签。版本id可以通过git log查看。

git tag [标签号] [版本id]

创建带有说明的标签。git tag -a [标签号] -m "标签说明" [版本id]

删除标签。

git tag -d [标签号]

远程仓库

如果不想搭建自己的git服务器,可以选择使用Github。这个网站就是提供Git仓库托管服务的,所以,只要注册一个GitHub账号,就可以免费获得Git远程仓库第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这

目录下有没有idrsa和idrsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:

$ ssh-keygen -t rsa -C [你的email]

如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有idrsa和idrsa.pub两个文件,这两个就是SSH Key的秘钥对,idrsa是私钥,不能泄露出去,idrsa.pub是公钥,可以放心地告诉任何人。第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:

然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容。

当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。添加远程库

现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,真是一举多得。首先,登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库。

在Repository name填入learngit,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库。目前,在GitHub上的这个learngit仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。git remote

通过git remote命令关联远程库。

git remote add origin [你的github地址]

查看远程库信息git remote -v

git push

将本地库提交到远程库git push origin [分支名称]或
git push origin -u [分支名称]

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时可以简化命令。git

pull

如果向远程库推送失败,有可能远程库已有新版本导致冲突,那么需要使用git pull从远程库将新版本拉取到本地,手动解决后再推送。

git pull    

如果pull也失败,有可能没有与远程库关联,下面是关联方法:git branch --set-upstream [分支名称] origin/[分支名称]

远程克隆git clone如果远程已有库,可以通过git clone将远程库的内容克隆到本地。

git clone [你的git地址]

从远程克隆下来的项目只能看到master分支,如果要抓取其他分支可以使用git checkout。git checkout -b dev1 origin/dev1

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn