Git 工具总结

初操作---设置用户名

1、git config --global user.name "any name"  //设置全局project的用户名

2、git config --global user.email "any email"  //设置全局project的邮箱

3、git config --global --list   //查看当前用户的全局配置   用户名和邮箱

4、在VS Code中每次更新代码都会要输入账号密码,方便起见,可以配置一下让 git 记住密码账号。

5、git config --global credential.helper store 

建立远程仓库链接

1、如果是从服务器 clone 下来的代码,会自动配置一个叫 origin 的远程仓库链接

2、git remote -v  // 查看配置的远程仓库链接

3、git remote add <远程仓库名> <远程仓库url>    //添加远程库链接

4、git remote rm <远程仓库名>   //移除远程仓库

5、git remote rename <oldname> <new name> //远程仓库重命名

提交代码过程

1、提交之前,需要 pull (拉取)一下,然后处理冲突

2、git add -A   //添加所有文件,也可以只提交更改的文件 git add .

3、git add .   //添加更改的文件

4、git commit -m "描述代码信息"

5、git push -u <远程库的名称> <远程库的分支>  // -u 表示指定<当前远程库> 为默认远程仓库,以后就直接push,不用带参数

6、如果你确定远程仓库的分支上那些代码都不需要了,那么直接 push 后面加一个 -f ,强行让本地分支覆盖远程分支

7、git push <远程仓库名> <远程库的分支> -f 

提交代码出现冲突

1、git push 会出问题,应该先pull 一下,但是 pull 的时候又可能会出现分支冲突,

2、这时可能由于版本问题会报错,可能遇到 refusing to merge unrelated histories 这个提示是因为两个仓库不同,发现 refusing to merge unrelated histories,无法 pull。

3、要把两个不同的项目合并,git 需要添加一句代码 ,这句代码是在 git 2.9.2 版本发生的,最新的版本需要添加 –allow-unrelated-histories。查看git 版本,git --version

4、假如我们的远程仓库是 origin,分支是 master,那么我们 需要这样写  git pull origin master --allow-unrelated-histories

5、然后再  git push -u <远程库的名称> <远程库的分支>

拉取代码出现冲突

1、git pull 时本地文件和远程服务器文件冲突,出错信息如下:

2、error: Your local changes to 'contextTempl.java' would be overwritten by merge.  Aborting.

3、Please, commit your changes or stash them before you can merge.

4、解释:这个意思是说更新下来的内容和本地修改的内容有冲突,先提交你的改变或者先将本地修改暂时存储起来。

5、在 VS Code 中,错误提示是:在签出前 请清理存储库工作树

6、在这种情况下,您可以将更改隐藏起来,然后执行git pull,然后解压缩;

7、git stash  //先将本地修改存储起来

8、git pull  //拉取远程

9、git stash pop //还原暂存内容

代码克隆所有分支

git clone 只能 clone 远程库的 master 分支,无法 clone 所有分支,解决方法去下:

1、git clone http://xxx.xxx.com/project/.git ,这样在git_work目录下得到一个project子目录

2、cd project

3、git branch -a,列出所有分支名称如下:remotes/origin/dev     remotes/origin/release

4、git checkout -b origin/dev dev,作用是 checkout 远程的 dev 分支,在本地起名为 dev 分支,并切换到本地的 dev 分支

5、git checkout -b origin/release release,作用参见上一步解释

6、git checkout dev,切换回 dev 分支,并开始开发。

查看分支:git branch

创建分支:git branch

切换分支:git checkout

创建+切换分支:git checkout -b

合并某分支到当前分支:git merge

删除分支:git branch -d

指令简写

-d    --delete:删除

-D   --delete --force的快捷键

-f     --force:强制

-m   --move:移动或重命名

-M   --move --force的快捷键

-r     --remote:远程

-a     --all:所有

git fetch 和 git pull 的区别

1、git fetch <远程主机名> <分支名>

2、最常见的命令如取回 origin 主机的 master 分支:

3、git fetch origin master  ,从远程主机的master分支拉取最新内容

4、git merge FETCH_HEAD ,将拉取下来的最新内容合并到当前所在的分支中

5、git pull <远程主机名> <远程分支名>:<本地分支名>

6、git pull origin master  , 如果远程分支是与当前分支合并,则冒号后面的部分可以省略

git 撤销操作、恢复文件

1、如果误删了某文件,需要 git status 先看下工作区是否 commit 过,如果没有 commit ,可以看到删除的文件名及路径,是红色的

2、直接从工作区拿删除的文件 git checkout -- <path + file>

3、如果已经commit 了,那么git status 看到的删除的文件及路径是绿色的,这时checkout 已经没用了

4、可以把暂存区的修改撤销掉(unstage),git reset HEAD <path + file>,重新放回工作区,然后 git checkout -- <path + file> 取回

git 版本回退

远程分支回退有三种方法:

1、自己的分支回滚直接用 reset

2、公共分支回滚用 revert

3、错的太远了直接将代码全部删掉,用正确代码替代

本地分支版本回退:

1、先找到要回退的版本的 commit id ,git reflog 

2、可以根据commit id ,查看先前版本的信息,git log <commit id>  或者 git show <commit id>,退出git log 状态,英文状态下按q 

3、回退版本 git reset --hard

自己的远程分支版本退回:

  如果你的错误提交已经推送到自己的远程分支了,那么就需要回滚远程分支了。

1、git reflog

2、git reset --hard <commit id>

3、然后强制推送到远程分支,git push -f

本地分支回滚后,版本将落后远程分支,必须使用强制推送覆盖远程分支,否则无法推送到远程分支

公共远程分支回退:

  回滚公共远程分支和回滚自己的远程分支是有区别的,如果你回退公共远程分支,把别人的提交给丢掉了怎么办?

原文地址

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容