基本推送流程
克隆远程仓库到本地仓库:git clone 仓库地址(ssh/http)
本地仓库连接远程仓库:git remote add 仓库地址(ssh/http)
进入本地仓库进行git初始化: git init (生成.git目录文件夹)
本地修改代码
将修改添加到本地缓存:git add -A / git add 指定文件
将添加的缓存提交:git commit -m '提交说明'
拉取远程仓库更改:git pull / git pull origin master(分支名称)
将本地修改推送到远程仓库:git push / git push -u origin master
常用推送流程:
-
git add .
-
git commit -m “给你的保存起一个名字"
-
git pull 把服务器代码拉下来跟你本地代码合并
-
git push 把合并好的最新代码推送到服务器端
其他:
-
配置忽略提交的文件及目录
(1)根目录下生成.gitignore文件:vim .gitignore
(2)根目录下生成.gitattributes文件:touch .gitattributes 进入文件添加配置如:common.js merge = ours
(3)执行命令:git config merge.ours.driver true -
回退版本
(1)回退commit前(撤销merge):git reset --hard HEAD(其中的个数表示回退几个版本)
(2)恢复回退前:https://www.cnblogs.com/hope-markup/p/6683522.html -
解决每次拉取提交都要输入账号密码问题
(1)本地仓库下:git config --global credential.helper store
(2)重新拉取,并输入一次账号密码后便可 -
解决git add 警告:warning: LF will be replaced by CRLF
提交时转换为LF,检出时转换为CRLF
$ git config --global core.autocrlf true -
git pull与git pull --rebase
git pull = git fetch + git merge
git pull --rebase = git fetch + git rebase -
git fetch 与git pull区别
git fetch 相当于是从远程获取最新到本地,不会自动merge(将本地库所关联的远程库的commit id更新
至最新)
git fetch orgin master 将远程仓库的master分支下载到本地当前branch中
git log -p master ..origin/master 比较本地的master分支和origin/master分支的差别
git merge origin/master 进行合并git fetch origin master:tmp 从远程仓库master分支获取最新,在本地建立tmp分支
git diff tmp 將當前分支和tmp進行對比
git merge tmp 合并tmp分支到当前分支git pull 相当于是从远程获取最新版本并merge到本地(将本地库更新至远程库的最新状态)
git pull origin master -
强制操作
git push -f origin master 本地强制上传到远程,把远程的覆盖
git pull --rebase origin master 拉取远程的文件把本地的覆盖,再上传
8.取消对文件的跟踪
git rm -r --cache 文件名
如取消.gitignore的提交就必须先取消对其的跟踪
9.强制退出merge状态
git reset --merge
git reset --abord
10.手动merge后操作
git add
git commit -m 'XXX'
git push -u origin master
网友评论