`
abcwht130
  • 浏览: 4023 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

git创建一个项目用到的关键命令

    博客分类:
  • git
 
阅读更多

1、先装个git吧。

此处略去1万字。

2、配置git。如果你没配置过

# 检查已有配置信息
$ git config --list
# 配置信息设置
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com" 
$ git config --global color.ui "always"

 

3、初始化

就是告知天下这个目录是我git的地盘啦

$ git init              # 初始化,创建一个.git文件

 

4、添加文件到版本库

想加入组织,得先是临时工(这样出问题了也好推责任,我git组织没有这样的,他是临时工。哈哈。。)

$ git add somefile.txt  # 添加单个文件到本地版本库
$ git add *.txt         # 添加所有的txt文件到本地版本库
$ git add .             # 添加所有的子目录(不包含空目录)到本地版本库

 

5、提交文件

临时工通过考验了,那就正式入编吧。

# 提交
$ git commit -m "msg" somefile.txt                # 提交 单个文件
$ git commit -m "msg" -a                          # 提交 所有修改文件
$ git commit -C head -a -amend                    # 增补提交,不会产生新的提交历史

 

6、远程库添加

改革开放一下

$ git remote add <origin> <URL>                   #添加远程版本库origin

 

 

7、push到远程库

世界人民一家亲,把你的信息上报给联合国,现在是世界公民了

$ git push <远程主机名> <本地分支名>:<远程分支名>

 注意,分支推送顺序的写法是<来源地>:<目的地>,所以git pull是<远程分支>:<本地分支>,而git push是<本地分支>:<远程分支>。

如果省略远程分支名,则表示将本地分支推送与之存在”追踪关系”的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。

$ git push origin master

 如果当前分支与远程分支之间存在追踪关系,则本地分支和远程分支都可以省略。

git push origin

 上面命令表示,将当前分支推送到origin主机的对应分支。

如果当前分支只有一个追踪分支,那么主机名都可以省略。

$ git push

 如果当前分支与多个主机存在追踪关系,则可以使用-u选项指定一个默认主机,这样后面就可以不加任何参数使用git push。

$ git push -u origin master

 上面命令将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了。

不带任何参数的git push,默认只推送当前分支,这叫做simple方式。此外,还有一种matching方式,会推送所有有对应的远程分支的本地分支。Git 2.0版本之前,默认采用matching方法,现在改为默认采用simple方式。如果要修改这个设置,可以采用git config命令。

$ git config --global push.default matching
# 或者
$ git config --global push.default simple

 还有一种情况,就是不管是否存在对应的远程分支,将本地的所有分支都推送到远程主机,这时需要使用–all选项。

$ git push --all origin

 上面命令表示,将所有本地分支都推送到origin主机。

如果远程主机的版本比本地版本更新,推送时Git会报错,要求先在本地做git pull合并差异,然后再推送到远程主机。这时,如果你一定要推送,可以使用–force选项。

 

如果有错Non-fast-forward,你的地盘你说了算,那就来硬的吧,强推:

git push -f

 温柔点可以这样

$ git fetch

$ git merge

#这2句命令等价于
$ git pull  

 

其他命令

# 撤销未提交的文件
$ git checkout head a.txt b.txt     # 撤销单个文件
$ git checkout head *.txt           # 撤销所有txt文件
$ git checkout head .               # 撤销所有文件
# 撤销已提交的文件
$ git revert --no-commit head <filename>      # 撤销最近一次的提交

$ git branch                # 列出本地分支
$ git branch -a             # 列出本地所有分支
 
$ git checkout <branchName>       # 签出分支
$ git branch <branchName>         # 基于当前分支创建新的分支
$ git checkout -b <branchName>    # 基于当前分支创建新的分支并签出
 
$ git branch -m <branchName> <newName>  # 不会覆盖已存在的同名分支
$ git branch -M <branchName> <newName>  # 会覆盖已存在的同名分支
 
$ git branch -d <newName>                 # 如果分支未合并会删除失败
$ git branch -D <newName>                 # 强制删除分支
 
$ git branch -r -d origin/<branchName>       #删除远程分支1
$ git push origin :<branchName>              #删除远程分支2
 
$ git branch -r                     # 列出所有远程库分支
$ git remote prune origin           # 删除远程库不存在的分支
$ git merge –no–ff <branchName>       # 快速合并分支



$ git tag                               # 显示所有标签列表
 
$ git tag <tagName>                     # 当前最后一次提交后的分支上创建标签
$ git tag <tagName> <branchName>        # 为特定分支最后一次提交后的状态创建标签
$ git tag <tagName> <version>           # 为历史版本提交创建标签
 
$ git checkout <tagName>                # 签出标签(快速查看基于某个标签下的断面,但不能提交)
 
$ git tag -d <tagName>                  # 删除标签



$ ssh-keygen -t rsa -C "youremail@example.com"    #cat ~/.ssh/id_rsa.pub 上传公钥
 
$ git clone <URL>                                 #克隆版本库
 
$ git remote add <origin> <URL>                   #添加远程版本库origin
$ git remote rm <origin>                          #删除远程版本库origin
 
$ git fetch <origin>                              #获取但不合并
$ git pull = git pull <origin>                    #获取并合并到本地分支
 
$ git push <origin> master                        #推送远程库origin  第一次加上 -u


$ git status    #当前状态
$ git log       #历史日志
/.gitignore     #忽略特殊文件,添加到版库中,也支持版本管理
#简化命令行配置
$ git config --global alias.st status       #输入git st = git status;   其他命令同理

 先到这吧。

 

分享到:
评论

相关推荐

    git常用命令指南.

    - git init:在当前目录创建一个Git仓库。 - git init [project-name]:在当前目录下新建一个目录并初始化为Git仓库。 - git clone [url]:下载远程项目的代码到本地。 处理分支是版本控制的核心,以下是管理分支的...

    git工具的安装包

    例如,`gitk`提供了一个可视化历史的界面,而`git gui`则是一个全功能的图形化界面。此外,还有很多第三方工具,如GitHub Desktop、SourceTree、GitKraken等,它们提供了更友好的用户界面,适合初学者和专业开发者。...

    Git三件套,6666666666666666

    它不仅复制了远程仓库的所有文件,还创建了一个本地的Git工作目录,这样你就可以在这个副本上进行修改、提交和推送操作。克隆时,你可以指定远程仓库的URL,例如: ``` git clone ...

    第三章 Git分支_git_分布式存储_

    在Git中,创建一个新的分支意味着创建了一个指向当前提交的新指针。这意味着每个分支都有自己的历史记录,可以独立发展,直到最终将其合并回主分支。 创建Git分支非常简单,只需要运行`git branch &lt;branch-name&gt;`...

    git报错需要的null.sys

    如果Git尝试在`/dev/null`下创建文件,这显然是不正确的,因为`/dev/null`不是一个普通目录,所以会导致失败。 3. **环境变量配置错误**:用户的环境变量配置可能错误地指定了`/dev/null`作为某些Git操作的路径,...

    Git实用教程

    - 打开工作区内的`.gitconfig`文件,如果没有则新建一个。 - 添加以下内容: ```ini [credential] helper=store ``` - 保存并关闭文件。 - 这样做可以在输入用户名和密码后自动保存,避免每次都需要重新输入...

    GIT操作指南_v2.0.pdf

    文档还提到了安装TortoiseGit,它是一个基于GIT的版本控制系统,提供了一个方便的图形用户界面来管理GIT仓库。安装TortoiseGit的过程中,用户需要选择合适的SSH Client类型,因为GIT在与远程仓库交互时通常会用到SSH...

    GitTest:测试git命令

    GitTest项目是一个用于测试Git命令的实践平台,特别适合初学者和开发者巩固Git的基本操作和高级功能。在项目中,我们可以找到一个名为"GitTest-master"的压缩包,这通常代表了项目的主分支或者是最稳定的版本。让...

    simple-git-test:测试简单git节点js

    在这个项目中,开发者可能创建了一个工具或者库,方便在Node.js环境中与Git交互,进行诸如提交、拉取、合并等操作。 描述中的“简单git测试”和“测试简单git节点js”进一步确认了这个项目的核心目的,即通过...

    Python库 | giturl-0.1.0.tar.gz

    "giturl-0.1.0.tar.gz" 是一个针对Python的开源库,从其命名可以推测,它可能与处理Git仓库URL相关,可能是用于解析、验证或操作Git仓库的URL。 Git是一种分布式版本控制系统,广泛应用于源代码管理,特别是在开源...

    详解Git建立本地仓库的两种方法

    如果你需要复制一个已经存在的Git仓库,比如从GitHub或其他Git托管服务,可以使用`git clone`命令: 1. 获取要克隆的仓库的URL,通常可以从仓库页面找到。 2. 在本地选择一个位置,使用`git clone`命令克隆仓库: ...

    Git活动:Class#2,git活动

    在项目根目录下运行`git init`,这会创建一个隐藏的`.git`目录,存储所有的Git元数据。 3. **配置用户信息**:在开始使用Git之前,需要设置用户名和电子邮件,因为Git在每次提交时都会用到这些信息。通过`git ...

    星际大战-角色生成器:一个有趣的小项目,因此我可以学习使用git

    1. **初始化仓库**:开发者首先会在项目目录下使用`git init`命令创建一个新的本地git仓库。 2. **添加文件**:使用`git add`命令将`HTML`文件和其他资源添加到暂存区,准备进行版本记录。 3. **提交更改**:通过`...

    git-first

    在描述中,“这是我的第一个学习项目-New:wq”表明这是一个个人的学习实践,可能是某人初次接触 Git 并尝试建立的第一个项目。 在这个“git-first”项目中,我们可以预想包含以下几个关键知识点: 1. **Git 安装...

    Node.js-GUI程序记录已执行终端命令的详细历史记录以便于访问

    标题中的“Node.js-GUI程序记录已执行终端...综上所述,这个项目涉及了Node.js的基础知识、终端交互、GUI开发、命令历史管理、用户界面设计、事件监听以及版本控制等多个方面,是一个全面展示Node.js开发技能的实例。

    learning-git:我的测试GIt

    在"learning-git:我的测试GIt"这个项目中,用户显然正在通过实践操作来学习Git的基础知识,包括`git pull`、`git push`等核心命令。这些命令是Git工作流程中的关键组成部分。 `git pull`是将远程仓库的最新变动拉取...

    test:这是为了学习git

    这个操作会在项目中生成一个隐藏的.git目录,其中包含Git的所有元数据。 接下来,我们需要配置Git。使用`git config user.name`和`git config user.email`设置用户名和邮箱,这样Git在提交时会记录这些信息。 在...

    ROS安装rosdistro文件

    如果你对ROSdistro的源代码有改进,可以创建一个新的分支,进行修改,然后提交(`git commit`)并推送到GitHub(`git push`),以便其他开发者查看和合并你的更改。 总的来说,安装ROSdistro文件涉及到对ROS环境的...

    svn2git:从svn repo迁移到git repo的样本

    2. **创建git仓库**:首先,在本地创建一个新的空Git仓库,这将是迁移后的目标。 3. **克隆svn仓库**:使用`git svn clone`命令克隆svn仓库到本地git仓库。这个过程中,所有svn的分支和标签都将被映射为git的分支。...

Global site tag (gtag.js) - Google Analytics