目录
分支开发、多人协作以及更多见 参考链接
提交更新
git status
git add -A //将文件添加到缓存
git commit -m "---" //添加所有修改
git pull //从仓库拉取最新代码
git push //提交缓存代码到仓库
【Already up to date】
【如果是Every thing up-to-date 重新从git status走一遍】
提示:
1.第一次提交时,可能会在commit命令之后要登录,登录后就能继续命令了。
git config --global user.email "XXX@qq.com"
git config --global user.name "XXX"
2.提交之前,最好先在本地 npm run build一下,确保本地编译没问题
git创建分支开发与合并
git checkout -b dev
// 表示创建分支并切换 到dev 等于
// git branch dev 表示创建分支
// git checkout dev 表示切换分支
// 合并分支 ,先切换到master上
git merge dev //合并
git branch -d dev //删除dev分支
git merge --no-ff -m "注释" dev
//使用参数 -no-ff 禁用fast forward模式
# 1.查看所有分支
git branch -a
# 2.查看当前使用分支(结果列表中前面标*号的表示当前使用分支)
git branch
# 3.切换分支
git checkout 分支名
放弃某个文件的修改
// 情况1 未添加到缓存区
git checkout -- readme.md
// 情况2 已添加到缓存区
git status //先看一下add 中的文件
git reset HEAD //如果后面什么都不跟的话 就是上一次add 里面的全部撤销了
git reset HEAD XXX/XXX/XXX.c //就是对某个文件进行撤销了
放弃本地修改 同步git上最新版本
git fetch --all
git reset --hard origin
git pull
git版本回退
git log // 查看历史 显示从最近到最远
git log -pretty=online //git log简洁版显示 只显示版本号和commit信息
git reflog //返回所有版本号 包括提交后又回退的
git reset --hard HEAD^ //返回上个版本
git reset --hard HEAD^^ //返回上上个版本
git reset --hard HEAD ~100 //返回前100个版本
git reset --hard 版本号 //根据版本号回退
通过git删除某个文件
rm readme.md // 删除了本地的readme.md文件 如果想删除git中的commit即可
创建项目
首先要在文件夹内
git init
git add .
git commit -m "first commit"
git remote add origin http://192.168.XX.XX:3000/xxx/xxx/xxx/xxx.git
git push -u origin master
从命令行推送现有存储库
git init
git add -A
git commit -m "---"
git remote add origin https://github.com/XXX/XXX.git
git push -u origin master
git pull origin master --allow-unrelated-histories
# 允许不相关历史合并 即手动合并冲突
# 或者 git pull --rebase origin master
# 如果有冲突记得合并冲突,重新
# git add -A
# git commit -m "merge"
# git pull origin master --allow-unrelated-histories
git push --set-upstream origin master
# 或者 git push -u origin master
参考
查看远程仓库地址
git remote show origin
创建忽略文件.gitignore
1、在需要创建 .gitignore 文件的文件夹, 右键选择Git Bash 进入命令行,进入项目所在目录。
2、输入 touch .gitignore ,生成“.gitignore”文件。
3、在”.gitignore” 文件里输入你要忽略的文件夹及其文件就可以了。(注意格式)
修改远程仓库地址
方法有三种:
1.修改命令
git remote origin set-url [url]
2.先删地址后加地址
# 本地干净情况
git remote rm origin
git remote add origin [url]
git branch --set-upstream-to=origin/master master
git pull
# 本地有未提交代码
git remote rm origin
git remote add origin [url]
git add -A
git commit -m "--"
git push -u origin master
# 本地未提交代码 我没试过这样
git remote rm origin
git remote add origin [url]
git branch --set-upstream-to=origin/master master
git add -A
git commit -m "--"
git pull
git push
3.直接修改config文件
远程仓库改名了,本地git修改地址
git remote
# 查看是否有远程仓库
git remote rm origin
# 删除本地git中远程仓库地址
git remote
git remote add origin https://new_url
git push --set-upstream origin master
#有未提交代码
#Branch 'master' set up to track remote branch 'master' from 'origin'.
# 重新走一遍正常提交流程就好
多仓库同步遇到的问题
#添加同步地址
git remote set-url --add origin https://gitee.com/rza/sxps/
#查看补充后的远程地址
git remote --verbose
git remote show origin
#推送代码
git add .
git commit -m "github & gitee 同步推送和分发"
git push origin master
nginx代理后推代码报错
error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413
fatal: the remote end hung up unexpectedly
fatal: the remote end hung up unexpectedly
server{
listen 80;
server_name git.balabiu.com;
#加上这一行 client_max_body_size
client_max_body_size 100m;
location /{
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:5100;
}
}
git分支相关
git push代码到远程新分支
git push origin master:my_remote_new_branch
#远端即可创建新的分支my_remote_new_branch,提交本地修改
强制推送
git push -f origin master
git本地多账户管理
step1
git-bash进入git gui
step2
使用cd ~/.ssh
可以查看是否已配置SSH .如无,则为空
也可以C:Users【USER_NAME】.ssh
路径下查看。
step3
生成几个本机ssh
ssh-keygen -t rsa -C "dpt_acc"
ssh-keygen -t rsa -C "team_acc"
ssh-keygen -t rsa -C "gitee_acc"
ssh-keygen -t rsa -C "github_acc"
# 然后会让你输入文件名和2次密码
dpt_id_rsa
team_id_rsa
gitee_id_rsa
github_id_rsa
step4
dpt_id_rsa.pub,team_id_rsa.pub里的内容复制到公司、github、gitee的ssh里面
step5
/.ssh
路径下配置config文件
#compay
Host xxxxx.com
HostName xxxxx.com
User compay_account
IdentityFile ~/.ssh/dpt_id_rsa
#website
Host github.com
HostName github.com
User website_account
IdentityFile ~/.ssh/team_id_rsa
#blog
Host gitee.com
HostName gitee.com
User blog_account
IdentityFile ~/.ssh/gitee_id_rsa
Host: 服务器
HostName: 主机名或域名,建议使用域名
User: 用户名或者邮箱
IdentityFile: rsa文件路径
后续使用git,会通过config文件来自动选择账号。
参考
git push 问题:committer 'xxx (x)' does not match your user account
添加到暂缓区
git stash
// 将当前工作隐藏,最好先add 不然可能恢复的时候没有
git stash apply
// 恢复隐藏
git stash drop
// 删除stash
参数
usage: git add [<options>] [--] <pathspec>...
-n, --dry-run dry run
-v, --verbose be verbose
-i, --interactive interactive picking
-p, --patch[=<patch-mode>]
select hunks interactively
-e, --edit edit current diff and apply
-f, --force allow adding otherwise ignored files
-u, --update update tracked files
--renormalize renormalize EOL of tracked files (implies -u)
-N, --intent-to-add record only the fact that the path will be added later
-A, --all add changes from all tracked and untracked files
--ignore-removal ignore paths removed in the working tree (same as --no-all)
--refresh don't add, only refresh the index
--ignore-errors just skip files which cannot be added because of errors
--ignore-missing check if - even missing - files are ignored in dry run
--chmod (+|-)x override the executable bit of the listed files
推荐书籍
Jon Loeliger 、Matthew McCullough 《Git 版本控制》第二版
参考链接
Git使用教程:最详细、最傻瓜、最浅显、真正手把手教! (https://mp.weixin.qq.com/s/uHZWyeEIP3lihvyD2vZAEA)
mark cnblog不支持以下【参考文献写法】写法
[Git使用教程]: https://mp.weixin.qq.com/s/uHZWyeEIP3lihvyD2vZAEA "来自微信"