git常用操作

分支开发、多人协作以及更多见 参考链接

提交更新

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

查看远程仓库地址

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 SSH配置

本地管理多个git账号

gitee生成/添加SSH公钥

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	"来自微信"
posted @ 2019-12-14 17:41  marvelousone  阅读(272)  评论(0)    收藏  举报