每当本地仓库中的内容有新的修改时,我们需要将这些内容推送到远程库,使用git命令如何实现呢?
如果本地未关联远程仓库,请提前配置好,可参考《初次配置Git本地关联远程库》。
总的来说,主要有以下几步:
第一步:拉取远程最新内容到本地
问题来了,既然我们要做的是提交操作,为什么首先要先去拉取远程内容呢?
因为你改动的文件或者所在目录不止有你一个人修改,如果别人在你之前也修改了同一个文件或目录里的内容,并已经推到远程仓库,而你没有拉取下来,此时你把你的更新提交后,可能会出现冲突,甚至把别人的内容覆盖,因此,在每次提交前,最好先拉取一次远程内容。
使用命令:git pull origin master,效果如下
第二步:添加修改到缓存
那么我们怎么可以看到最终新增/修改/删除了哪些内容呢?答案就是:git status
当知道需要提交哪些改动时,就可以使用指令:git add + 文件名称 或者 git add + 目录名称/
假如文件和目录均有改动呢,可以多次执行add操作,也可以使用:git add --all将所有改动一次性添加到缓存中
现在我在本地库新增了一个paths.py的文件,我们使用git status看看它是否别识别出来
可以看到,它已经被本地仓库识别到,并提示我去git add <file>,
接下就可以进行add操作:git add 路径/paths.py,执行结果如下:
没有任何信息,也没有报错,再使用git status看看文件状态,
发现文件变绿色了,并且是个new file,说明add成功。
第三步:提交修改到缓存库
此时文件只是暂时被添加到缓存,提交到缓存库使用指令:git commit -m '注释'
再使用git status 看看文件状态,
从图中可以看到,已经没有需要提交的文件了,并提示使用git push去推送你提交的内容。
第四步:推送提交内容到远程库
使用指令:git push origin master
推送成功,然后在git远程库就可以看到刚刚提交的内容了。
push推送时可能会出现冲突,解决方法如下:
1、提示! [rejected] master -> master (fetch first),则先执行git fetch
2、提示! [rejected] master -> master (non-fast-forward),则再git pull origin master一次
冲突解决后,请直接再次push即可,不需要从add重新操作。