git命令之add,commit,push

参考http://www.zhanglian2010.cn/2014/07/git-pull-vs-fetch-and-merge/

git有好几个区,工作区(workspace)、暂存区(index)、本地仓库(local repository)、还有远程仓库(remote repository)。远程仓库为我们保存一份代码,如github,而工作区、暂存区和本地仓库都在本地,这也就是为什么我们在没有网络的环境下也能使用git提交(commit)代码,因为提交仅仅是提交到本地仓库中,待有网络之后在推送(push)到远程仓库。


1.git add命令

git命令主要是用于把我们要提交的文件的信息添加到暂存区中。

用法有git add -u [<path>],表示把<path>中所有tracked文件中被修改过或者已经删除的信息添加到暂存库中。它不会处理untracked的文件。

git add -a [<path>],表示把<path>中所有tracked文件中被修改或者被删除文件和所有untracked的文件信息添加到暂存区。

git add -i [<path>],表示查看<path>中所有被修改过或者被删除过但是没有提交的文件。


README.md和test.txt表示已经执行了git add,已经进入到了暂存区,还没有进行提交。

测试.txt表示已经处于tracked下,被修改了,但是还没有被执行git add到暂存区。

1.1 update子命令表示把已经tracked的文件加入到暂存区。

先输入2,然后回车,然后开始选择update的文件,选1后回车,如果没有结束当前update输入,再输入回车,测试.txt文件就加入到暂存区了。如下如:


1.2 revert子命令表示把已经加入到暂存区的文件从暂存区中剔除。

操作方法和上面一样,下输入3,代表选择的是revert操作,然后选择要操作的文件,回车确定,在回车退出revert操作,文件就从暂存区中剔除了。

1.3 diff子命令

通过diff子命令,可以比较暂存区中文件和原版本的差异。

2 commit命令

2.1 git commit -m "提交的描述信息"

将暂存区中的文件提交到本地仓库中

2.2 git commit - a -m "提交的描述信息"

或者git commit -am "提交的描述信息",这个方法就是可以把tracked的文件提交到本地仓库,就算这件没有git add,也能提交。这个就是省略了git add这一步。

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

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

3.1 git push origin master

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

上面命令表示,将本地的master分支推送到origin主机的master分支。如果后者不存在,则会被新建。

3.2 git push origin :master 

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




### 使用 Git 进行添加、提交和推送操作 #### 初始化仓库 为了使用当前目录作为 Git 环境,需执行初始化命令。这会创建一个新的空 Git 仓库,在指定路径下生成隐藏的 `.git` 文件夹。 ```bash $ git init Initialized empty Git repository in /home/user/git/testing/.git/ ``` #### 添加文件至暂存区 当文件准备好加入版本控制时,应先将其添加到暂存区域。通过 `git add .` 命令可以一次性把所有未跟踪的新文件以及修改过的已跟踪文件都放入暂存区;也可以针对单个文件执行此操作: ```bash $ git add filename.txt ``` #### 创建提交记录 一旦更改被成功添加到了暂存区,则可以通过编写有意义的信息来描述此次变更集并正式保存它们成为一次完整的提交。这里推荐采用标准化的消息格式以便于后续维护人员理解每次改动的目的与影响范围[^3]。 ```bash $ git commit -m "Add feature X" [master (root-commit) d87e9b0] Add feature X 1 file changed, 2 insertions(+), 0 deletions(-) create mode 100644 filename.txt ``` #### 推送更新至远程库 最后一步就是将本地所做的全部变动同步给远端服务器上的对应分支。在此之前建议先拉取最新版以避免潜在冲突问题的发生[^4]。 ```bash # 更新前获取最新的上游变化 $ git pull origin develop # 将本地develop分支推送到origin主机上同名分支 $ git push origin develop Counting objects: 3, done. Delta compression using up to 4 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 256 bytes | 0 bytes/s, done. Total 3 (delta 1), reused 0 (delta 0) To https://github.com/example/repo.git eafbcde..d87e9b0 develop -> develop ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值