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 init:在当前目录创建一个Git仓库。 - git init [project-name]:在当前目录下新建一个目录并初始化为Git仓库。 - git clone [url]:下载远程项目的代码到本地。 处理分支是版本控制的核心,以下是管理分支的...
例如,`gitk`提供了一个可视化历史的界面,而`git gui`则是一个全功能的图形化界面。此外,还有很多第三方工具,如GitHub Desktop、SourceTree、GitKraken等,它们提供了更友好的用户界面,适合初学者和专业开发者。...
它不仅复制了远程仓库的所有文件,还创建了一个本地的Git工作目录,这样你就可以在这个副本上进行修改、提交和推送操作。克隆时,你可以指定远程仓库的URL,例如: ``` git clone ...
在Git中,创建一个新的分支意味着创建了一个指向当前提交的新指针。这意味着每个分支都有自己的历史记录,可以独立发展,直到最终将其合并回主分支。 创建Git分支非常简单,只需要运行`git branch <branch-name>`...
如果Git尝试在`/dev/null`下创建文件,这显然是不正确的,因为`/dev/null`不是一个普通目录,所以会导致失败。 3. **环境变量配置错误**:用户的环境变量配置可能错误地指定了`/dev/null`作为某些Git操作的路径,...
- 打开工作区内的`.gitconfig`文件,如果没有则新建一个。 - 添加以下内容: ```ini [credential] helper=store ``` - 保存并关闭文件。 - 这样做可以在输入用户名和密码后自动保存,避免每次都需要重新输入...
文档还提到了安装TortoiseGit,它是一个基于GIT的版本控制系统,提供了一个方便的图形用户界面来管理GIT仓库。安装TortoiseGit的过程中,用户需要选择合适的SSH Client类型,因为GIT在与远程仓库交互时通常会用到SSH...
GitTest项目是一个用于测试Git命令的实践平台,特别适合初学者和开发者巩固Git的基本操作和高级功能。在项目中,我们可以找到一个名为"GitTest-master"的压缩包,这通常代表了项目的主分支或者是最稳定的版本。让...
在这个项目中,开发者可能创建了一个工具或者库,方便在Node.js环境中与Git交互,进行诸如提交、拉取、合并等操作。 描述中的“简单git测试”和“测试简单git节点js”进一步确认了这个项目的核心目的,即通过...
"giturl-0.1.0.tar.gz" 是一个针对Python的开源库,从其命名可以推测,它可能与处理Git仓库URL相关,可能是用于解析、验证或操作Git仓库的URL。 Git是一种分布式版本控制系统,广泛应用于源代码管理,特别是在开源...
如果你需要复制一个已经存在的Git仓库,比如从GitHub或其他Git托管服务,可以使用`git clone`命令: 1. 获取要克隆的仓库的URL,通常可以从仓库页面找到。 2. 在本地选择一个位置,使用`git clone`命令克隆仓库: ...
在项目根目录下运行`git init`,这会创建一个隐藏的`.git`目录,存储所有的Git元数据。 3. **配置用户信息**:在开始使用Git之前,需要设置用户名和电子邮件,因为Git在每次提交时都会用到这些信息。通过`git ...
1. **初始化仓库**:开发者首先会在项目目录下使用`git init`命令创建一个新的本地git仓库。 2. **添加文件**:使用`git add`命令将`HTML`文件和其他资源添加到暂存区,准备进行版本记录。 3. **提交更改**:通过`...
在描述中,“这是我的第一个学习项目-New:wq”表明这是一个个人的学习实践,可能是某人初次接触 Git 并尝试建立的第一个项目。 在这个“git-first”项目中,我们可以预想包含以下几个关键知识点: 1. **Git 安装...
标题中的“Node.js-GUI程序记录已执行终端...综上所述,这个项目涉及了Node.js的基础知识、终端交互、GUI开发、命令历史管理、用户界面设计、事件监听以及版本控制等多个方面,是一个全面展示Node.js开发技能的实例。
在"learning-git:我的测试GIt"这个项目中,用户显然正在通过实践操作来学习Git的基础知识,包括`git pull`、`git push`等核心命令。这些命令是Git工作流程中的关键组成部分。 `git pull`是将远程仓库的最新变动拉取...
这个操作会在项目中生成一个隐藏的.git目录,其中包含Git的所有元数据。 接下来,我们需要配置Git。使用`git config user.name`和`git config user.email`设置用户名和邮箱,这样Git在提交时会记录这些信息。 在...
如果你对ROSdistro的源代码有改进,可以创建一个新的分支,进行修改,然后提交(`git commit`)并推送到GitHub(`git push`),以便其他开发者查看和合并你的更改。 总的来说,安装ROSdistro文件涉及到对ROS环境的...
2. **创建git仓库**:首先,在本地创建一个新的空Git仓库,这将是迁移后的目标。 3. **克隆svn仓库**:使用`git svn clone`命令克隆svn仓库到本地git仓库。这个过程中,所有svn的分支和标签都将被映射为git的分支。...