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

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

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便是咱们用来简要说明此次提交的语句。fetch

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

Git push

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

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

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

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

相关文章
相关标签/搜索