基本使用
项目已在远程仓库
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= [email protected]
测试是否配置成功(Github)
- 执行
ssh -T [email protected]
根据提示查看是否配置成功
常见问题
为什么将本地分支推送到远程后无法直接推送代码?
答:需要将本地分支和刚才推送的远程分支进行关联后才可以推送。使用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 [email protected]
一直提示Host key verification failed.
。试着执行ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts
后在查看