初入公司,应该这样使用Git

NightRain.png

基本使用

项目已在远程仓库

1.克隆项目代码(默认在主分支上)

  • 使用命令:git clone 项目远程地址
  • 使用方式:通过cmd进入存放项目本地目录,然后执行命令
  • 示例命令:
G:\test>git clone 项目远程地址
Cloning into 'ProjectDemo'...
remote: Enumerating objects: 6639, done.
remote: Counting objects: 100% (6639/6639), done.
remote: Compressing objects: 100% (4583/4583), done.
remote: Total 6639 (delta 2891), reused 4792 (delta 1747)/s
Receiving objects: 100% (6639/6639), 70.59 MiB | 1.95 MiB/s, done.
Resolving deltas: 100% (2891/2891), done.
Checking out files: 100% (3415/3415), done.

2.查看远程分支和本地分支状态(注意要进入项目目录)

  • 使用命令:git branch //查看本地分支状态
  • 使用命令:git branch -a //查看远程分支状态
  • 示例命令:
//查看本地分支状态
G:\test\ProjectDemo>git branch
* master
//查看远程分支状态
G:\test\ProjectDemo>git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/dev-test
  remotes/origin/master
  remotes/origin/test1
  remotes/origin/test2

3. 创建本地分支并跟踪远程分支(dev-test为分支名)

  • 使用命令:git checkout -b dev-test origin/dev-test
  • 注意事项:最好本地分支和远程分支名称相同
  • 命令示例:
G:\test\ProjectDemo>git checkout -b dev-test origin/dev-test
Checking out files: 100% (1291/1291), done.
Switched to a new branch 'dev-test'
Branch 'dev-test' set up to track remote branch 'dev-test' from 'origin'.

4. 查看分支跟踪情况

  • 使用命令:git branch -vv
  • 命令示例:
G:\test\ProjectDemo>git branch -vv
* dev-test d62efae [origin/dev-test] ......
  master    e1b4220 [origin/master] ......

第一次推送到远程

1.初始化仓库

  • 在远程创建一个空仓库
  • 进入项目目录使用指令git init初始化本地仓库
E:\AndroidProject\BaseAndroid>git init
Initialized empty Git repository in E:/AndroidProject/BaseAndroid/.git/

2.配置仓库用户信息

  • 使用指令git config user.name "你的名称"git config user.email "你的邮箱"
  • 示例:
//用户名
E:\AndroidProject\BaseAndroid>git config user.name "NightRain"
//用户邮箱(和远程仓库绑定邮箱对应)
E:\AndroidProject\BaseAndroid>git config user.email "你的邮箱"

3.将本地项目添加到本地仓库

  • 使用指令:git add .
  • 命令示例:
E:\AndroidProject\BaseAndroid>git add .

4.将本地项目提交到本地仓库

  • 使用指令:git commit -m "提交说明"
  • 命令示例:
E:\AndroidProject\BaseAndroid>git commit -m "初始化项目"
[master (root-commit) f43c196] 初始化项目
 40 files changed, 809 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 .idea/.gitignore
 create mode 100644 .idea/compiler.xml
 create mode 100644 .idea/gradle.xml
 create mode 100644 .idea/jarRepositories.xml
 ......

5.关联远程仓库地址

  • 使用指令:git remote add origin
  • 命令示例:
E:\AndroidProject\BaseAndroid>git remote add origin https://github.com/NightRainDream/BaseAndroidProject

6.推送项目到远程仓库

  • 使用指令:git push -u origin master
  • 命令示例:
E:\AndroidProject\BaseAndroid>git push -u origin master
Enumerating objects: 73, done.
Counting objects: 100% (73/73), done.
Delta compression using up to 8 threads
Compressing objects: 100% (54/54), done.
Writing objects: 100% (73/73), 132.13 KiB | 5.29 MiB/s, done.
Total 73 (delta 1), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (1/1), done.
To https://github.com/NightRainDream/BaseAndroidProject
 * [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

常用指令

基本配置相关

命令 说明
git config --global user.name "your name" 修改Git昵称(全部仓库)
git config user.name "your name" 修改Git昵称(当前仓库)
git config --global user.email "your name" 修改Git邮箱(全部仓库)
git config user.email "your name" 修改Git邮箱(当前仓库)
git config user.name 查看Git昵称
git congig user.email 查看你Git邮箱

分支相关

命令 说明
git branch 查看本地分支
git branch -a 查看所有本地和远程分支
git branch -d dev 删除本地分支dev
git branch -vv 查看本地分支和远程分支跟踪情况
git branch new_dev 创建一个名为new_dev的分支
git checkout new_dev 切换到new_dev分支
git checkout -b new_dev 创建new_dev分支并切换到此分支
git checkout -b dev origin/dev 创建dev分支并跟踪远程dev分支
git merge dev 将dev分支合并到当前分支

标签相关

命令 说明
git tag 查看所有标签
git tag v1.0.0 打v1.0.0标签
git show v1.0.0 查看v1.0.0标签信息

提交相关

命令 说明
git add . 将当前目录添加到git索引库
git commit -m "提交说明" 将索引库项目提交到本地仓库
git status 查看项目状态(是否有需要操作之类)

远程推送相关

命令 说明
git push 将本地仓库推送到远程仓库
git pull 从远处仓库更新代码到本地
git push origin v1.0.0 推送v1.0.0标签到远程仓库
git push origin dev 将本地dev分支推送到远程仓库
git push --set-upstream origin dev 将dev分支与远程dev分支进行关联
git remote show origin 查看远程仓库地址
git remote set-url origin ....git 切换远程仓库地址到....git
git fetch 更新远程分支(在远程建立分支,本地没有显示)

SSH配置

查看是否配置SSH

  • 进入Git Bash Here执行cd ~/.ssh如下:
//未创建
$ cd ~/.ssh
bash: cd: /c/Users/NightRain/.ssh: No such file or directory
//已创建
$ cd ~/.ssh
电脑名@DESKTOP-FJBJ7UB MINGW64 ~/.ssh
  • 执行ll查看已创建SSH密钥,如下:
电脑名@DESKTOP-FJBJ7UB MINGW64 ~/.ssh
$ ll
total 5
-rw-r--r-- 1 电脑名 197121 2610  2月  3 00:07 id_rsa
-rw-r--r-- 1 电脑名 197121  575  2月  3 00:07 id_rsa.pub

创建SSH

  • 执行ssh-keygen -t rsa -C '你的邮箱',如下:
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/电脑名/.ssh/id_rsa):
Created directory '/c/Users/电脑名/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/电脑名/.ssh/id_rsa
Your public key has been saved in /c/Users/电脑名/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:VdnA8qrEMURmAVSPiBpSJ1Pq2yj/q6PRvBGwZqQ74iw 邮箱
The key's randomart image is:
+---[RSA 3072]----+
|  +.o.o+*. .o+   |
| . = . +.o..o .  |
|o.o . ... oo     |
|o= o    o.  .    |
|oo+    .So .     |
|o+ =    o .      |
|* * .  . .       |
|E=.o    .        |
|o+++o.           |
+----[SHA256]-----+
  • 执行t ~/.ssh/id_rsa.pub 查看生成的公钥,如下:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC5ShALaLp0CIQM4KzLEFyzQakMBlTZxk0RTylEJGD7zuSQwsZJU4osP+zJQKnafOZiLlP5OrUXJeoYVlVwuxpvEgYx+A15Hn1xZPUwPwR4E0txu07z1EtO2vhPYpE5Et/viN6S0hCTqiMc0qvDBdT5FMmBN6D4F/qevmy4FJ+BGpv1RdCLj/DAQyTT8uHcmc1UyjLgZzA0tCjnIc+g/M7rcG1FOiRAaanQsn7xHu+LVnvRN1IACANHLxPsHBzVyVZik3N2/+p7j6AH3CL/GouAkDLLpcS+50qkuKvSHdyqgOMnYyDZ56sqqXpjyR4vDbmlBK7Q1vc32DnYX+h9715/kiwuNItjORleztuN8QyYbkU16woxigz+A9h7FujxD4ipJXKUwNCgRiaGR7Jogx5RHZz/+jLiGH6lNMYMVdukkNSrWjVWZvocAthhL3pQJIwfoD3bCzZvNoyWQCx/xmAEk3zNbmI8xhZjMdB9kupLacN0IHn8PNCB4Uwkm782sT0= Night.Qin@outlook.com

测试是否配置成功(Github)

  • 执行ssh -T git@github.com 根据提示查看是否配置成功

常见问题

为什么将本地分支推送到远程后无法直接推送代码?

答:需要将本地分支和刚才推送的远程分支进行关联后才可以推送。使用git push --set-upstream origin dev即可将本地dev分支和远程dev分支进行关联。

为什么将本地分支推送到远程后无法直接推送代码?

答:需要将本地分支和刚才推送的远程分支进行关联后才可以推送。使用git push --set-upstream origin dev即可将本地dev分支和远程dev分支进行关联。

为什么远程有了新的分支,本地使用git branch -a无法查看到?

答:使用git fetch更新一下即可。

为什么Git所关联的远程账号在推送代码的时候不显示远程账号的头像和昵称?

答:可能是因为本地Git所设置的邮箱可关联远程账号的邮箱不一致。修改本地Git的邮箱与远程账号的邮箱一致即可。

Window配置SSH一直失败?

答:在Github配置SSH公钥后,使用ssh -T git@github.com一直提示Host key verification failed.。试着执行ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts后在查看

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

推荐阅读更多精彩内容

  • (预警:因为详细,所以行文有些长,新手边看边操作效果出乎你的预料) 一:Git是什么? Git是目前世界上最先进的...
    axiaochao阅读 1,921评论 1 8
  • 原文地址主要用到的命令: git config user.name 设置用户名 git config user....
    AFinalStone阅读 458评论 0 2
  • 声明:这篇文章来源于廖雪峰老师的官方网站,我仅仅是作为学习之用 Git简介 Git是什么? Git是目前世界上最先...
    横渡阅读 3,941评论 3 27
  • 如何关联远程库? 1.新建本地库 2.通过git官网新建远程库 3.输入指令: git remote add or...
    诸子大人阅读 16,409评论 1 9
  • Git 是目前最流行的分布式版本控制系统之一。 版本控制指的是,记录每次版本变更的内容和时间等细节,保留各版本之间...
    神齐阅读 1,396评论 0 7