zoukankan      html  css  js  c++  java
  • git 笔记/常用指令

    Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件。
    创建版本库
    1、版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
    所以,创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录:
    $ mkdir learngit $ cd learngit $ pwd /Users/michael/learngit
    pwd命令用于显示当前目录。在我的Mac上,这个仓库位于/Users/michael/learngit。
    如果你使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。
    git --version
    查看当前git版本
    git init
    把当前目录变成Git可以管理的仓库
    git config
    配置个人的用户名称和电子邮件地址:
    git config --global user.name "runoob" git config --global user.email test@runoob.com
    git config --list
    查看已有的配置信息
    也可以直接查阅某个环境变量的设定,只要把特定的名字跟在后面即可,git config user.name
    git clone <版本库的网址>
    将存储库克隆到新目录中,该命令会在本地主机生成一个目录,与远程主机的版本库同名。如果要指定不同的目录名,可以将目录名作为git clone命令的第二个参数,git clone <版本库的网址> <本地目录名>
    git branch
    查看本地分支
    git branch -a
    查询当前所有分支,包括本地分支和远程分支
    git branch -v
    查看各个分支最后一次提交
    git branch –merged
    查看哪些分支合并入当前分支
    git branch –no-merged
    查看哪些分支未合并入当前分支
    git branch newBranchName
    创建一个新的分支
    git checkout branchName
    切换分支
     git checkout -b branchName
    创建并切换分支
    git merge branchName
    把branchName合并到当前分支
    git rebase master
    更新master主线上的东西到当前分支上
    git merge和rebase的区别
    假设现在有两个分支 A B
    1. 在B分支上执行 git merge A 后 A就被合到B上了
    2. 在B分支上执行 git rebase A 后,效果与merge是一样的,但是 A就没有了,两个分支就合在一起了。
    git push origin branchName
    将本地分支推送到Git服务器,生成远程分支。
    git fetch origin branchName:branchName
    更新远程库到本地
    或者先切到本地分支内,执行git fetch origin branchName即可。
    git merge origin/mybranch
    取远程分支合并到本地
    git checkout -b mybranch origin/mybranch
    取远程分支并分化一个新分支
    git pull
    抓取远程仓库所有分支更新并合并到本地
    git pull origin master
    抓取远程仓库指定分支更新并合并到本地
    git log
    列出该文件的历史提交版本,能看到提交的版本号和提交的注释信息,以便确定要回退到哪个版本。
    git log --pretty=oneline 输出简化信息
    git reflog
    记录每一次命令,查看命令历史,以便确定要回到未来的哪个版本。
    git diff
    对比该文件两个版本的不同。
    git status
    查看当前分支状态
    git add fileName
    告诉Git,把文件添加到仓库,实际上就是把文件修改添加到暂存区
    git add . 可添加全部修改文件
    git commit -a
    git commit -m "备注信息",实际上就是把暂存区的所有内容提交到当前分支。
    提交
    git reset --hard HEAD^
    HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
    git reset --hard commitId
    可以指定回到未来的某个版本,版本号没必要写全,前几位就可以了,Git会自动去找。
    git branch -d branchName
    删除本地分支
    git push origin --delete develop
    删除远程分支
    git remote -v
    查看远程服务器地址和仓库名称
    git remote show origin
    查看远程服务器仓库状态
    开发规范总结:
    开发过程中每个工程师在推送代码之前要先执行拉取操作,因为远程仓库有更新的话,不先拉取(pull/fetch)是无法推送(push)的,尽量少使用git pull进行拉取,而是先用git fetch拉取在进行git merge。
    团队开发禁止在主干直接修改代码,一定要开分支,而且是远程分支进行开发。
    创建分支可以打标签,git tag。
    拉取代码时最好先git fetch再git merge而不是直接git pull。
    提交代码和推送代码以及代码上线之前,一定要先和原来版本对比 git diff 。
    提交代码加注释 git commit -m 'Bob developed' 。
    author:Lik
    Endeavoring to powerless, struggling to move yourself.
  • 相关阅读:
    Hdu 1257 最少拦截系统
    Hdu 1404 Digital Deletions
    Hdu 1079 Calendar Game
    Hdu 1158 Employment Planning(DP)
    Hdu 1116 Play on Words
    Hdu 1258 Sum It Up
    Hdu 1175 连连看(DFS)
    Hdu 3635 Dragon Balls (并查集)
    Hdu 1829 A Bug's Life
    Hdu 1181 变形课
  • 原文地址:https://www.cnblogs.com/likwin/p/7722805.html
Copyright © 2011-2022 走看看