zoukankan      html  css  js  c++  java
  • git语言

    安装完成后,需要进一步设置用户名和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

  • 相关阅读:
    【C#进阶系列】06 类型和成员基础
    纪中5日T1 1564. 旅游
    纪中17日T1 2321. 方程
    纪中17日T2 2322. capacitor
    纪中10日T1 2313. 动态仙人掌
    纪中14日听课小结 图论 最短路 二分图 差分约束
    一个抓猫的游戏 消遣GAME 持续更新中!
    洛谷P1464 Function  HDU P1579 Function Run Fun
    洛谷P1976 鸡蛋饼
    纪中12日T1 2307. 选择
  • 原文地址:https://www.cnblogs.com/miaozhicheng/p/5003847.html
Copyright © 2011-2022 走看看