git常用命令大全

一. git架构

git有四个个工作区:
  1. 工作区(workspace):当前书写代码的地方
  2. 暂存区(index/stage):git add之后的
  3. 本地仓库(local repository):git commit 之后的
  4. 远程仓库(remote repository):git push之后的

二. git安装后-指定用户名和邮箱

1. 指定用户名:git config --global user.name 'Your name'
2. 指定邮箱:git config --global user.email 'Your email'
3. 例如:
git config --global user.name wangjiajia
git config --global user.email wangjiajia@qq.com
4. 注:查看的时候不用加指定得到用户名和密码就行

三. 创建版本库

1. 创建文件夹:mkdir '文件夹名字'
2. 打开文件夹:cd '文件夹名字'
3. 查看当前路径:pwd
4. 在当前目录下新建一个git仓库:git init
5. 新建一个目录,将其初始化为Git代码库:git init [project_name]
6. 下载一个项目:git clone [url](url为远程仓库对应的地址)
7. 显示当前的git配置:git config --list
8. 编辑Git配置文件:git config -e --global

四. 查看信息

1. 显示所有的变更信息:git status
2. 查看提交历史记录:git log
显示以下4个字段信息:
(1)提交对象:commit的完整哈希字符串
(2)提交者信息:作者的名字和电子邮件地址
(3)提交时间
(4)提交说明
3. 查看提交历史记录简洁信息:git log --pretty=oneline
4. 查看提交历史记录简洁信息(显示前n条)git log -n --pretty --oneline
5. 显示当前分支的最近几次提交:git reflog
6. 显示暂存区和工作区的差异:git diff
7. 显示所有提交过的用户按照提交次数排序:git shortlog -sn
8. 显示今天你写了多少代码: git diff --shortstat "@{0 day ago}"
9. 显示n天以来你写了多少代码: git diff --shortstat "@{n day ago}"
10. 显示最近一次commit的变化:git show
11. 显示指定commit的变化:git show commitId

五. 远程同步

1. 添加一个新的远程仓库,并命名:git remote add origin [url]
2. 显示所有的远程仓库:git remote -v
3. 显示某个远程仓库的信息:git remote show origin
4. 删除某个远程仓库:git remote remove origin
5. 修改远程仓库:git remote set-url origin [url]
6. 下载远程仓库的所有变动:git fetch origin
7. 从远程指定分支拉取代码并合并到本地指定分支:git pull origin [远程分支名]:[本地分支名]
8. 从远程指定分支拉取代码并合并到本地分支:git pull origin [远程分支名]
9. 从远程指定分支拉取代码并合并到本地指定分支同时切换到该分支:git checkout -b master origin/dev
10. 从远程分支拉取代码:git pull (远程分支和本地分支同名)
11. 将本地分支推送到远程(第一次推送,在远程创建了一个分支):git push -u origin master
12. 将本地分支推送到远程(之后):git push origin dev:master
13. 将本地分支推送到远程同名分支:git push
14. 将本地分支强行推送到远程同名分支:git push -f
15. 从远程克隆默认分支代码:git clone git@git.qhdsx.com:bitgeek/sx-mall.git
16. 从远程克隆指定分支代码(克隆远程分支上的dev代码):git clone -b dev git@git.qhdsx.com:bitgeek/sx-mall.git
17. 拉取某一分支上的某一次commit的代码:
	* 先拉取这个分支的代码(第一次使用git clone,否则可以直接使用git pull或`最好使用 git checkout`):git clone -b dev git@git.qhdsx.com:bitgeek/sx-mall.git
	* 在拉取当前分支的某一次commit的代码:git checkout -b newDev 2342dsfsdfs2 (newDev 是新分支名 , 2342dsfsdfs2 是提交过的 commit 的id)
18. 将暂存区和工作区的代码暂时存到堆栈中(避免切换分支后带来的冲突或者是代码同步过去)
命令名            作用
git stash        隐藏当前的工作现场, 此时, git status的结果是 clean
git stash list	 查看所有隐藏, 每一行的冒号前面的字符串就是标识此隐藏的id
git stash apply	 重新显示标识为 id 的隐藏


六. 分支管理

1. 列出所有本地分支(选中的为当前分支):git branch
2. 列出所有本地分支和远程分支:git branch -a
3. 新建一个分支,但依然停留在当前分支:git branch <分支名>
4. 新建一个分支,并切换到该分支: git checkout -b <分支名>
5. 切换到指定分支:git checkout <分支名>
6. 切换到上一个分支:git checkout -
7. 合并指定分支到当前分支:git merge [branch]
8. 回滚到上一次的代码:git reset --hard HEAD^
9. 回滚到前3次的代码:git reset --hard HEAD^3
10. 回滚到前n次的代码:git reset --hard HEAD^n
11. 回滚到指定commit的代码:git reset --hard commitId 
12. 重做某一次提交:git revert commitId
13. 删除本地分支:git branch -d <分支名> 
14. 强制删除本地分支:git branch -D <分支名>
15. 删除远程分支(慎用):git push origin -d [远程分支名]
16. 恢复暂存区的指定文件到工作区:git checkout [file]
17. 恢复某个commit的指定文件到暂存区和工作区:git checkout commitId [file]
18. 恢复暂存区的所有文件到工作区:git checkout .
19. 切换到指定的commit下:git checkout commitId(不会影响到当前工作区的状态)
20. 注:
	(1-d 等价于 --delete:删除
	(2-D 等价于 --delete --force:强制删除
	(3-f 等价于 --force:强制
	(4-m 等价于 --move:移动或者重命名
	(5-a 等价于 --all:所有
	(6-r 等价于 --remote:远程

七. 标签管理

1. 列出所有tag:git tag
2. 新建一个tag在当前commit:git tag [标签名,例如:v1.0]
3. 新建一个tag在指定commit:git tag [标签名] [commitId]
4. 删除本地tag:git tag -d [标签名]
5. 显示当前分支下的tag信息:git show [标签名]
5. 删除远程tag:git push origin :refs/tags/[tagName]
6. 推送指定的tag到远程:git push origin [标签名]
7. 推送所有的tag到远程:git push origin --tags
8. 在当前分支下切换tag:git checkout [标签名]
9. 新建一个tag指定名称和注释:git tag -a [标签名] -m[message]

八. git reset 和 git revert

  1. git reset:回滚到某一次的提交将HEAD指向指定的版本上去,在这之后的commit都会被删除。需要使用git push -f强制推送一下,刷新远程仓库。
  2. git revert:重做某一次提交,会生成一个新的commit来代替重做的commit,之前所有的commit都会保留。可能会有冲突,修改冲突之后,在add和commit,push
  3. 语法:
1. 回滚到上一次的代码:git reset --hard HEAD^
2. 回滚到前3次的代码:git reset --hard HEAD^3
3. 回滚到前n次的代码:git reset --hard HEAD^n
4. 回滚到指定commit的代码:git reset --hard commitId 
5. 重做某一次提交:git revert commitId

在这里插入图片描述

在这里插入图片描述

九. git pull 和 git fetch的区别

  1. 用法不同:
    • git fetch是将远程代码拉到本地,并不会修改和自动合并当前的工作。
    • git pull是将远成代码拉到本地分支,并进行合并,因此可能会产生冲突。
  2. commitId不同:
    • 使用git fetch更新代码,本地仓库当前分支的commitId不变。
    • 使用git pull更新代码,本地仓库当前分支的commitId变化了。
  3. 安全性不同:git pull = git fetch + git merge ,因此git fetch的安全性更好,因为它允许你检查拉取前后发生的变化,以便于解决冲突。

十. git rebase 和 git merge的区别

  1. git rebase会把当前分支的commit放到公共分支的最后面叫作变基,如果在主分支上面还有别的commit,形成多个commit状态。合并之后会保留所有的commit
  2. git merge会把当前分支的commit和公共分支上的commit合并到一起,形成一个新的commit。合并之后不会保留merge分支的commit
  3. 优缺点:
    • git merge属于一股脑,解决一次冲突就行,生成一个新的commit,被合并的分支commit不会被保留。
    • git rebase属于交互式,不会产生额外的commit,这样的好处就是“干净”。缺点是如果合并的分支有多个commit可能需要处理多次冲突。

在主分支feature上新建一个分支main:
在这里插入图片描述
现在使用merge将main分支合并到feature上:

5. git checkout feature
6. git merge main
7. 或者直接使用:git merge main feature

此时分支结构如下:将feature和main上的commit合并在一起形成一个新的commit:
在这里插入图片描述
现在使用rebase将feature分支合并到main上:

8. git checkout feature
9. git rebase main

此时分支结构如下:会把整个feature分支的commit放到main分支的后面。
在这里插入图片描述

十一. 查看镜像源

1. 查看镜像源:npm config get registry
2. 设置镜像源:npm config set registry http://registry.npm.taobao.org
3. 通过cnpm使用淘宝镜像:npm install -g cnpm --registry=https://registry.npm.taobao.org
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python Git常用命令大全Git是现代化的版本控制系统,常被用于软件开发,协作和管理。它允许在开发过程中创建和管理不同的版本,跟踪文件的更改,以及支持团队合作。Python则是一种广泛应用于开发Web应用程序以及数据科学和人工智能领域的高级编程语言。在使用Git时,Python的代码可以与Git进行集成。这里是Python Git常用命令的大全: 1. git init:初始化一个新的 Git 仓库。 2. git clone:从现有的 Git 仓库克隆项目,可以是本地仓库或远端仓库。 3. git add:将文件添加到 Git 仓库中。git add . 可以添加所有更改。 4. git commit:将所有已添加的文件提交到本地 Git 仓库中。 5. git status:查看当前工作目录中 Git 仓库的状态。 6. git log:查看提交记录。 7. git push:将本地 Git 仓库的更改推送到远端仓库。 8. git pull:将远端 Git 仓库的更改拉到本地仓库。 9. git branch:创建新的分支。 10. git checkout:切换分支。 11. git merge:将一个分支的更改合并到另一个分支。 12. git revert:撤销一个提交。 13. git rebase:将一个分支的修改合并到当前分支。 14. git config:配置 Git。 15. git remote:管理远端仓库。 这是Python Git常用命令的大部分命令,但这并不是全部。在使用Git和Python时,这些命令应该是最为重要的。无论是在个人项目中还是团队合作中,这些命令会让你更加高效地使用Git,并保护你的代码免遭不可挽回地灾难。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值