Git 命令行 大合集

Git

安装git

查看版本

git --version

配置签名(用户名和邮箱)

//项目级别/仓库级别 局部
git config user.name sheep669
git config user.email sheep669@126.com

查看配置

git config -l
//系统用户级别 全局
git config --global user.name CodeHaywire
git config --global user.email CodeHaywire@163.com

本地库初始化

git init

建立远程连接

git remote add origin https://github.com/VisYang/DataStructure.git

查看远程关联

git remote -v

删除已有的远程库

git remote rm origin

git给远程库起的默认名称是origin,如果有多个远程库,我们需要用不同的名称来标识不同的远程库。

//一个本地库能不能既关联GitHub,又关联Gitee呢?  当然可以

我们先删除已关联的名为origin的远程库:
git remote rm origin
先关联GitHub的远程库
git remote add github xxx   // 注意,远程库的名称叫github,不叫origin了
再关联Gitee的远程库:
git remote add gitee xxx    //同样注意,远程库的名称叫gitee,不叫origin

//查看关联情况
git remote -v

如果要推送到GitHub,使用命令:
git push github main  //main分支可变,不一定和我一样,main只是一个名字
最新:  git push -u github main //建议使用
如果要推送到Gitee,使用命令:
git push gitee master  //master分支可变,不一定和我一样,同历master也只是一个名字
最新:git push -u gitee master  //建议使用

查看本地状态

git status

添加所有文件

git add * 

提交文件

git commit -m '描述'

到目前为止只是本地生效

推送到远端

git push -u origin main

远地库与本地库不一致解决办法

git pull --rebase origin master  //远库非空

查看分支

git branch      //查看本地所有分支
git branch -r   //查看远程所有分支
git branch -a   //查看本地和远程所有分支
一般当前本地分支前带有“*”号且为绿色,远程分支为红色

查看当前分支

git branch -vv

重命名分支branch

//重命名分支branch  -M 强制
git branch -M main    //重命名分支branch为main
git branch -M master  //重命名分支branch为master
git branch -M xxxx   //重命名分支branch为xxxx
git branch -M oldName newName  重命名分支oldName为newName

新建分支branch

git branch [-f] xxxx  //新建一个分支,但不切换
//git checkout 命令用来切换分支
git checkout -b xxxx  //新建并切换至新分支

删除分支

git branch -d xxxx     //删除本地分支branch
git branch -d -r xxxx  //删除远端分支branch

合并分支

git merge <branch> 带上一个你想合并进来的一个分支名称

查看有无.ssh

ll ~/.ssh

生成秘钥[若无]

ssh-keygen
//三次回车

最后在.ssh目录下(C盘用户文件夹下)得到了两个文件:id_rsa(私有秘钥)和id_rsa.pub(公有密钥)

切换到.ssh目录

cd ~/.ssh

查看目录

ll

查看文件

 cat id_rsa.pub

复制内容到github

alt

检测是否可以连接

ssh -T git@github.com
//看到问题 回答yes  You've successfully authenticated, but GitHub does not provide shell access. 代表成功建立连接

下载代码到本地

git clone https://github.com/VisYang/DataStructure.git

弹出输入用户名和密码

gitee 我的用户名:17314003693 密码:和github密码一致

example ( gitee )

新建仓库

alt

桌面 右键 git bash

example

Gitee

//配置签名(用户名和邮箱)
git config --global user.name Vis_Yang
git config --global user.email Vis_Yang@163.com
//检查配置
git config -l
//创建仓库
mkdir data-structure  //不需要与远端同名也可用
//进入仓库
cd data-structure/
//初始化仓库
git init
//建立README.md 就是一个说明文档
touch README.md  //Typora打开写点东西
//将项目中要上传的文件复制到这个仓库里
//添加所有文件到git仓库管理
git add *
//查看变化和文件
git status
//提交到git库内
git commit -m 'first commit'
//建立远程连接ssh(tip:不用每次上传都要输入用户名和密码)   //前提***h环境
git remote add origin git@gitee.com:vis-yang/data-structure.git
//上传到远端
git push -u origin master   
//======over=======

已有仓库?
cd existing_git_repo
git remote add origin git@gitee.com:vis-yang/data-structure.git
git push -u origin master

http方式

//配置签名(用户名和邮箱)
git config --global user.name Vis_Yang
git config --global user.email Vis_Yang@163.com
//检查配置
git config -l
//创建仓库
mkdir data-structure  //不需要与远端同名也可用
//进入仓库
cd data-structure/
//初始化仓库
git init
//建立README.md 就是一个说明文档
touch README.md  //Typora打开写点东西
//将项目中要上传的文件复制到这个仓库里
//添加所有文件到git仓库管理
git add *
//查看变化和文件
git status
//提交到git库内
git commit -m "first commit"
//建立远程连接http
git remote add origin https://gitee.com/vis-yang/data-structure.git
//上传到远端
git push -u origin master
已有仓库?
cd existing_git_repo
git remote add origin https://gitee.com/vis-yang/data-structure.git
git push -u origin master

GitHub

//配置签名(用户名和邮箱)
git config --global user.name Vis_Yang
git config --global user.email Vis_Yang@163.com
//检查配置
git config -l
//创建仓库
mkdir data-structure  //不需要与远端同名也可用
//进入仓库
cd data-structure/
//初始化仓库
git init
//建立README.md 就是一个说明文档
touch README.md  //Typora打开写点东西
//将项目中要上传的文件复制到这个仓库里
//添加所有文件到git仓库管理
git add *
//查看变化和文件
git status
//提交到git库内
git commit -m "first commit"
//指定分支branch
git branch -M main
//建立远程连接ssh(tip:不用每次上传都要输入用户名和密码)   //前提***h环境
git remote add origin git@github.com:VisYang/DataStructure.git
//上传到远端
git push -u origin main
已有仓库?
git remote add origin git@github.com:VisYang/DataStructure.git
git branch -M main
git push -u origin main

http方式

//配置签名(用户名和邮箱)
git config --global user.name Vis_Yang
git config --global user.email Vis_Yang@163.com
//检查配置
git config -l
//创建仓库
mkdir data-structure  //不需要与远端同名也可用
//进入仓库
cd data-structure/
//初始化仓库
git init
//建立README.md 就是一个说明文档
touch README.md  //Typora打开写点东西
//将项目中要上传的文件复制到这个仓库里
//添加所有文件到git仓库管理
git add *
//查看变化和文件
git status
//提交到git库内
git commit -m "first commit"
//指定分支branch
git branch -M main
//建立远程连接http
git remote add origin https://github.com/VisYang/DataStructure.git
//上传到远端
git push -u origin main
已有仓库?
git remote add origin https://github.com/VisYang/DataStructure.git
git branch -M main
git push -u origin main

远库为空则按顺序即可,与本地不一致

 git push -u origin master

远库非空

拉取远端与本地合并

 git pull --rebase origin master
 git push -u origin master

修改本地,再上传


ASUS@LAPTOP-LS2D2D85 MINGW64 /e/eclipse-workspace (master)
$ git status
On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   README.md

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        .gitignore
        README.assets/

no changes added to commit (use "git add" and/or "git commit -a")

ASUS@LAPTOP-LS2D2D85 MINGW64 /e/eclipse-workspace (master)
$ git add *
The following paths are ignored by one of your .gitignore files:
DemoWeb
JunitDemo
Selenium
Servers
merger.zip
reverse.zip
seqlist.zip
singlylinkedlist.zip
hint: Use -f if you really want to add them.
hint: Turn this message off by running
hint: "git config advice.addIgnoredFile false"

ASUS@LAPTOP-LS2D2D85 MINGW64 /e/eclipse-workspace (master)
$ git status
On branch master
Your branch is up to date with 'origin/master'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   README.assets/image-20210930182956635.png
        new file:   README.assets/image-20210930183029558.png
        new file:   README.assets/image-20210930183039091.png
        new file:   README.assets/image-20210930183115064.png
        new file:   README.assets/image-20210930183130380.png
        new file:   README.assets/image-20210930183241215.png
        modified:   README.md

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        .gitignore


ASUS@LAPTOP-LS2D2D85 MINGW64 /e/eclipse-workspace (master)
$ git commit -m '添加了使用说明'
[master 8436e7c] 添加了使用说明
 7 files changed, 14 insertions(+)
 create mode 100644 README.assets/image-20210930182956635.png
 create mode 100644 README.assets/image-20210930183029558.png
 create mode 100644 README.assets/image-20210930183039091.png
 create mode 100644 README.assets/image-20210930183115064.png
 create mode 100644 README.assets/image-20210930183130380.png
 create mode 100644 README.assets/image-20210930183241215.png

ASUS@LAPTOP-LS2D2D85 MINGW64 /e/eclipse-workspace (master)
$ git push -u origin master
Enumerating objects: 12, done.
Counting objects: 100% (12/12), done.
Delta compression using up to 8 threads
Compressing objects: 100% (10/10), done.
Writing objects: 100% (10/10), 609.81 KiB | 5.08 MiB/s, done.
Total 10 (delta 1), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.1]
To gitee.com:vis-yang/data-structure.git
   9c0aa53..8436e7c  master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

ASUS@LAPTOP-LS2D2D85 MINGW64 /e/eclipse-workspace (master)

origin:是远程仓库的默认标识(当然有可能你起的是其他别的什么名字)可以变
master:指本地的master分支   可以变
变化后
git push -u newrepoName newbranchName   //都变化了,得更新名字push

git 选项解释

-d --delete:删除

-D --delete 强制删除

-f --force:强制

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

-M --move 强制移动或重命名

-r --remote:远程

-a --all:所有

克隆项目

git clone https://gitee.com/vis-yang/data-structure.git
git clone -b branchName https://gitee.com/vis-yang/data-structure.git
//example
git clone -b main https://gitee.com/vis-yang/data-structure.git
git clone -b master https://gitee.com/vis-yang/data-structure.git
git clone -b xxxx https://gitee.com/vis-yang/data-structure.git

完整过程

#项目级别/仓库级别 局部署名
$ git config user.name sheep669
$ git config user.email sheep669@126.com

#查看当前分支
CodeHaywire@DESKTOP-A56JCLR MINGW64 ~/Desktop/demo-vue/vue-admin (master)
$ git branch
* master
#修改当前分支 master --> main  看一下github官网,发现主分支是main,而本地是master,所以要修改,
#不修改代码则会提交到master分支(新分支)
CodeHaywire@DESKTOP-A56JCLR MINGW64 ~/Desktop/demo-vue/vue-admin (master)
$ git branch -M master main

#查看当前分支
CodeHaywire@DESKTOP-A56JCLR MINGW64 ~/Desktop/demo-vue/vue-admin (main)
$ git branch
* main

#关联远程地址
CodeHaywire@DESKTOP-A56JCLR MINGW64 ~/Desktop/demo-vue/vue-admin (main)
$ git remote add origin https://github.com/sheep669/vue-admin.git

#查看已经关联的远程地址
CodeHaywire@DESKTOP-A56JCLR MINGW64 ~/Desktop/demo-vue/vue-admin (main)
$ git remote -v
origin  https://github.com/sheep669/vue-admin.git (fetch)
origin  https://github.com/sheep669/vue-admin.git (push)


CodeHaywire@DESKTOP-A56JCLR MINGW64 ~/Desktop/demo-vue/vue-admin (main)
$ git status

CodeHaywire@DESKTOP-A56JCLR MINGW64 ~/Desktop/demo-vue/vue-admin (main)
$ git add * 

CodeHaywire@DESKTOP-A56JCLR MINGW64 ~/Desktop/demo-vue/vue-admin (main)
$ git commit -m 'update'

#下面一堆的意思是 远程仓库 与 本地仓库 不一致
CodeHaywire@DESKTOP-A56JCLR MINGW64 ~/Desktop/demo-vue/vue-admin (main)
$ git push -u origin main
To https://github.com/sheep669/vue-admin.git
 ! [rejected]        main -> main (fetch first)
error: failed to push some refs to 'https://github.com/sheep669/vue-admin.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

# 远程仓库 与 本地仓库 不一致  比如我会在github上面,手动建立一个仓库默认添加一个 LICENSE
# git pull --rebase origin main  这样可以把远程仓库的LICENSE提取到本地的仓库里
CodeHaywire@DESKTOP-A56JCLR MINGW64 ~/Desktop/demo-vue/vue-admin (main)
$ git pull --rebase origin main
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 1.17 KiB | 171.00 KiB/s, done.
From https://github.com/sheep669/vue-admin
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
Successfully rebased and updated refs/heads/main.

CodeHaywire@DESKTOP-A56JCLR MINGW64 ~/Desktop/demo-vue/vue-admin (main)
$ git push -u origin main
Enumerating objects: 84, done.
Counting objects: 100% (84/84), done.
Delta compression using up to 8 threads
Compressing objects: 100% (58/58), done.
Writing objects: 100% (83/83), 217.39 KiB | 9.88 MiB/s, done.
Total 83 (delta 7), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (7/7), done.
To https://github.com/sheep669/vue-admin.git
   9c8b2f3..ab4bcdd  main -> main
branch 'main' set up to track 'origin/main'.
修改提交描述
git commit --amend -m 'new commit message'
全部评论

相关推荐

点赞 1 评论
分享
牛客网
牛客企业服务