Git的add、commit、push命令

简单的代码提交流程

  1. git status 查看工作区代码相对于暂存区的差别
  2. git add . 将当前目录下修改的所有代码从工作区添加到暂存区 . 代表当前目录
  3. git commit -m "xxx" 将缓存区内容添加到本地仓库, xxx是对此次修改的描述
  4. git pull --rebase 拉取远程仓库代码并合并(如果有冲突需要进行手动处理)也可以直接使用 git pull 拉取
    • git pull = git fetch + git merge
    • git pull --rebase = git fetch + git rebase
  5. git push origin master (如果有冲突没有解决是提交不了的)将本地版本库推送到远程服务器,origin是远程主机,master表示是远程服务器上的master分支,分支名是可以修改的

Git add

git add [参数]  
作用就是将我们需要提交的代码从工作区添加到暂存区,就是告诉git系统,我们要提交哪些文件,之后就可以使用git commit命令进行提交了。
为了方便下面都用 . 来标识路径, . 表示当前目录,路径可以修改,下列操作的作用范围都在版本库之内。

git add .
不加参数默认为将修改操作的文件和未跟踪新添加的文件添加到git系统的暂存区,注意不包括删除

git add -u .
-u 表示将已跟踪文件中的修改和删除的文件添加到暂存区,不包括新增加的文件,注意这些被删除的文件被加入到暂存区再被提交并推送到服务器的版本库之后这个文件就会从git系统中消失了。

git add -A .
-A 表示将所有的已跟踪的文件的修改与删除和新增的未跟踪的文件都添加到暂存区。

Git commit

git commit 主要是将暂存区里的改动给提交到本地的版本库。每次使用git commit 命令我们都会在本地版本库生成一个40位的哈希值,这个哈希值也叫commit-id,commit-id 在版本回退的时候是非常有用的,它相当于一个快照,可以在未来的任何时候通过与git reset的组合命令回到这里.

git commit -m "xxx"
-m 参数表示可以直接输入后面的“message”,如果不加 -m参数,那么是不能直接输入xxx的,而是会调用一个编辑器一般是vim来让你输入这个xxx, xxx即是我们用来简要说明这次提交的语句。

git commit -am "xxx"
-am等同于-a -m
-a 参数可以将所有已跟踪文件中的执行修改或删除操作的文件都提交到本地仓库,即使它们没有经过git add添加到暂存区,注意: 新加的文件(即没有被git系统管理的文件)是不能被提交到本地仓库的。

Git push

在使用 git commit 命令将修改从暂存区提交到本地版本库后,只剩下最后一步将本地版本库的分支推送到远程服务器上对应的分支了。 git push的一般形式为 git push <远程主机名> <本地分支名> <远程分支名>,例如 git push origin master:refs/for/master ,即是将本地的master分支推送到远程主机origin上的对应master分支, origin 是远程主机名。第一个master是本地分支名,第二个master是远程分支名。

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

git push origin :refs/for/master
如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支,等同于 git push origin –delete master

git push origin
如果当前分支与远程分支存在追踪关系,则本地分支和远程分支都可以省略,将当前分支推送到origin主机的对应分支

git push
如果当前分支只有一个远程分支,那么主机名都可以省略,形如 git push,可以使用 git branch -r ,查看远程的分支名

关于 refs/for:
refs/for 的意义在于我们提交代码到服务器之后是需要经过code review 之后才能进行merge的,而refs/heads 不需要

参考自:https://blog.csdn.net/qq_37577660/article/details/78565899

原文地址:https://www.cnblogs.com/tangjian07/p/11282773.html

时间: 2024-11-07 23:16:00

Git的add、commit、push命令的相关文章

第二章-第二题(练习使用git的add/commit/push/pull/fetch/clone等基本命令)--梁绍楠

题目描述: 每人自己建立一个HelloWorld项目,练习使用git的add/commit/push/pull/fetch/clone等基本命令.比较项目的新旧版本的差别. 使用步骤: (1)创建版本库 选择一个合适的地方,创建一个空目录HelloWorld.而后通过git init把这个目录变成Git可以管理的仓库(目录下会多出了一个.git目录,该目录是git跟踪管理版本库的,勿轻易修改): 编辑hello文件,内容如下: (2)将文件hello放到git仓库 首先,需要设置用户名.邮箱信息

第二章-第二题(每人自己建立一个HelloWorld项目,练习使用git的add/commit/push/pull/fetch/clone等基本命令。比较项目的新旧版本的差别。)--by侯伟婷

第二题:每人自己建立一个HelloWorld项目,练习使用git的add/commit/push/pull/fetch/clone等基本命令.比较项目的新旧版本的差别. 下面我将自己的练习结果和个人感受记录如下: 第一步:安装Git,设置自己的账号和邮箱,参见Git教程-廖雪峰的官方网站,网址如下参考资料1所示. 第二步:在Git中新建repository,名叫HelloWorld,并进行初始化,如图所示. 第三步:在HelloWorld版本库中新建了helloWorld.txt文件,用以练习G

第二章-第二题(练习使用git的add/commit/push/pull/fetch/clone等基本命令)-By郭青云(未完待续)

题目描述: 每人自己建立一个HelloWorld项目,练习使用git的add/commit/push/pull/fetch/clone等基本命令.比较项目的新旧版本的差别. 使用步骤: 未完待续...... 参考文件:http://blog.csdn.net/u012575819/article/details/50553501

Git关于pull,commit,push的总结

以前总是由于自己的自身的原因,对于每一次的git的操作,我都是通过eclipse或者是idea来进行的,但是 我每一次都不是很清楚的关于这些方面的操作,现在我们来进行关于git bash的操作,正是由于这些操作使 的自己对于git的操作有了一个比较清晰的认知了,首先我们先看一张图: 首先我们必须要先理解这几个概念:暂存区,本地仓库,远程仓库 首先暂存区这个是我们每一次进行代码修改的地方,例如我们ieda的所编译的代码就是缓存区 本地仓库:是我们每一次pull,从远程仓库pull(拉取)到地方,这

git 命令 git status add rm commit mv

1.查看 git 仓库文件改动状态 Git 仓库内文件改动有 4 种状态,除了 Unmodified 状态的文件因为并未改动默认没有状态不做显示之外,其他文件改动状态都可以通过 git status 来查看 查看 Git 记录的状态 常用命令, 查看git仓库状态 git status 拿到一个git仓库,进入仓库,第一执行这个命令查看 [[email protected] ~]# cd /data/git_test/ [[email protected]-node1 git_test]# [[

git个人使用总结 —— idea命令行、撤销commit (未完待续)

近期在使用git,最开始在idea界面操作,后来要求用命令行.刚开始还不是很习惯,感觉很麻烦,用了几天后感觉爽极了! 其实git的命令也不是很多,熟悉一段时间就差不多能顺利使用了.使用过程中遇到了各种各样的问题,有些小问题就在这里集中总结一下. 1.idea命令行.git安装后就自带终端git bash,使用起来很方便.但是用idea开发,开发后还要在相应文件夹下打开git bash很麻烦.其实idea也带有终端terminal,在最下方可以找到,在这里就可以执行命令.但是如果是默认方式安装的g

git for c#, commit本地,push服务器

//ok private static void push() { string wkDir = @"E:\DotNet2010\单位工程\Git.Client\lib2Test\ConsoleApplication1\bin\Debug\D2Git\.git"; using (var repo = new Repository(wkDir)) { //此时必须保证存在 one.txt,two.txt 两个文件 string fname = "one.txt"; r

git push命令每次都要输入用户名和密码的问题处理

git push命令每次都要输入用户名和密码.原因是在添加远程库的时候使用了https的方式.所以每次都要用https的方式push到远程库. 这是github里的界面截图: 查看使用的传输协议: git remote -v [email protected]:~/MyGithub/DailyBlog$ git remote -v origin https://github.com/toyijiu/DailyBlog.git (fetch) origin https://github.com/t

【原】git如何撤销commit(未push)

撤销commit一般用git reset ,语法如下: git reset [ --mixed | --soft | --hard] [<commit ID>] 1.使用参数--mixed(默认参数),如git reset --mixed <commit ID>或git reset <commit ID> 撤销git commit,撤销git add,保留编辑器改动代码 2.使用参数--soft,如git reset --soft<commit ID> 撤销

让git push命令不再每次都输入密码

在每次使用git push的时候都需要输入用户和密码,是不是觉得很麻烦,为了提高效率 我们可以不需要输入密码就直接提交,我们知道Github获取远程库时,有ssh方式和https方式 两个方式的url地址不同,认证方式也不同.使用ssh时保存密钥对以后可以不再输入帐号密码, 而https却不能.所以如果想要不再输入帐号密码, 一种方式就是在git clone的时候使用ssh方式 另一种方式就是改变remote远程url,如下: $ git remote rm origin $ git remot