版本管理工具git基本操作

简介: 版本管理工具git基本操作

版本管理工具git

1.jpeg

git简介

分类

集中式:cvs,svn
分布式:git
托管网站:github

下载

git官网: https://git-scm.com/
国内镜像:https://npm.taobao.org/mirrors/git-for-windows/

mac

$ brew install git

linux常用指令

新建:mkdir dirname
进入:cd dirname
当前:pwd
文件列表:ls
查看:cat readme.txt
编辑:vim readme.txt
删除:rm readme.txt

git配置

指定用户名和地址
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
git config --global color.ui true # 显示颜色

创建版本库

初始化仓库:git init
添加到暂存区:git add filename
提交更改:git commit -m "message"
查看状态:git status
查看不同:git diff
查看工作区和版本库里面最新版本的区别:
git diff HEAD -- readme.txt

时光穿梭

提交历史

git log  
git log --pretty=oneline
git log --graph --pretty=oneline --abbrev-commit
命令历史:git reflog

版本回退

回退到上一版本:git reset --hard HEAD^
HEAD表示当前版本指针,往上多个版本:HEAD~100
回到指定版本:git reset --hard 版本号

工作区和暂存区

工作区(Working Directory) -> 版本库(Repository)(暂存区stage -> master)

撤销删除

丢弃工作区的修改:git checkout -- file
撤销暂存区的修改:git reset HEAD file
删除版本库文件:git rm 删掉,并且git commit

远程仓库:

创建SSH Key

ssh-keygen -t rsa -C "youremail@example.com"
默认值即可
路径:用户主目录/.ssh目录
github 添加公钥

克隆项目:

https协议:git clone https://github.com/mouday/demo.git
ssh协议:git clone git@github.com:mouday/demo.git
指定克隆深度:git clone --depth 1 git@github.com:mouday/demo.git
关联远程仓库:git remote add origin git@github.com:username/gitname.git

拉取推送

提交到远端:git push -u origin master
-u参数关联本地和远程分支,用于第一次推送
推送master分支到远端: git push origin master
拉取分支:git pull
查看远程分支:git branch -r
拉取远程分支:git checkout -b 本地分支名x origin/远程分支名x
拉取远程分支:git checkout -t origin/branch_name

分支管理

备注有修改未 commit 最好不要切换分支

创建与合并分支

查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
不使用Fast forward模式合并:git merge --no-ff -m "merge with no-ff" dev

bug分支

存储当前现场:git stash
查看:git stash list
恢复现场:git stash apply
删除存储:git stash drop
恢复并删除:git stash pop
强制删除有被合并过的分支:git branch -D <name>

多人协作

查看远程库的信息: git remote
详细的信息:git remote -v
创建本地dev分支: git checkout -b dev origin/dev
建立关联:git branch --set-upstream-to=origin/dev dev
多人协作: 推送 -> 失败则拉取 -> 解决冲突 -> 本地提交 -> 再推送 

标签管理

创建标签

查看标签:git tag
设置标签:git tag <tagname> [commit id]
查看标签信息:git show <tagname>
指定标签信息:git tag -a <tagname> -m "blablabla..." [commit id]
用PGP签名标签:git tag -s <tagname> -m "blablabla..." [commit id]

操作标签

推送一个本地标签:git push origin <tagname>
推送全部未推送过的本地标签:git push origin --tags
删除一个本地标签:git tag -d <tagname>
删除一个远程标签:git push origin :refs/tags/<tagname>

自定义git

忽略特殊文件

.gitignore   https://github.com/github/gitignore
强制添加:git add -f App.class
检查规则:git check-ignore -v App.class

配置别名

git config --global alias.st status
仓库的Git配置文件  .git/config
当前用户的Git配置文件  用户主目录/.gitconfig

经验建议

每次提交前记得diff,以免提交错误代码
下班回家前,整理好自己的工作区
并行的项目,使用分支开发
遇到冲突,搞明白原因,不要随意丢弃别人的代码
产品发布后,记得打tag,方便将来拉分支修复bug

git单人工作流

# 本地提交
git status # 查看本地仓库的修改状态
git add # 暂存文件
git commit # 提交文件
# 推送到远程仓库
git pull
git push origin master
注意,origin:远程中央仓库别名。master 推送的分支

git功能分支工作流

# 第一步,确认master主分支版本
$ git branch   # 查看分支
$ git checkout master  # 切换到master分支
$ git pull  # 拉取最新master分支
# 第二步,新建feature功能分支
$ git checkout -b feature master  # 新建feature分支
# 第三步,本地提交代码
$ git status  # 查看代码状态
$ git add .  # 添加到暂存区
$ git commit -m message  # 提交到分支
$ git push -u origin feature
# 推送 feature 分支到中央仓库(origin)
# -u选项设置本地分支去跟踪远程对应的分支
# 设置好跟踪的分支后,就可以使用git push命令省去指定推送分支的参数
# 第四步,提交合并请求
# GUI界面点击 Pull Requests
# 第五步,接受合并
git checkout master
git pull  # 检查master分支是否为最新
git pull origin feature  # 合并到本地master分支
git push  # 推送到远程仓库
# 其他
$ git merge feature/psy_itjuzi_person   

其他

# 补充提交,不新增提交记录
$ git commit -m "以防死循环" --amend


参考:

  1. Git教程 - 廖雪峰
  2. 常用 Git 命令清单 - 阮一峰
  3. 廖老师网站上总结的Git笔记
  4. Git工作流指南
相关文章
|
3月前
|
存储 开发工具 git
|
11天前
|
缓存 Java Shell
[Git]入门及其常用命令
本文介绍了 Git 的基本概念和常用命令,包括配置、分支管理、日志查看、版本回退等。特别讲解了如何部分拉取代码、暂存代码、删除日志等特殊需求的操作。通过实例和图解,帮助读者更好地理解和使用 Git。文章强调了 Git 的细节和注意事项,适合初学者和有一定基础的开发者参考。
32 1
[Git]入门及其常用命令
|
3月前
|
开发工具 git
【GIT 第二篇章】GIT常用命令
Git常用命令涵盖初始化、状态管理、提交、分支处理、远程操作等关键流程。`git init`启动本地仓库,`git clone`下载远程仓库。通过`git status`和`git diff`检查工作状态与差异。利用`git add`暂存文件,`git commit`保存更改。借助`git branch`、`git checkout`、`git merge`和`git rebase`管理分支。使用`git fetch`、`git pull`和`git push`同步远程仓库。通过`git reset`、`git revert`和`git checkout`实现版本回退。
66 0
|
1月前
|
开发工具 git
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
这篇文章是关于Git常用命令的总结,包括初始化配置、基本提交、分支操作、合并、压缩历史、推送和拉取远程仓库等操作的详细说明。
104 1
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
|
15天前
|
开发工具 git 开发者
|
15天前
|
开发工具 git 开发者
提升Git效率:掌握这5个高级命令
【10月更文挑战第17天】
37 0
|
2月前
|
存储 Linux 开发工具
掌握 Git 命令:每个开发者的必备技能
无论团队项目还是个人开发,掌握 Git 命令都是必备技能。本文介绍 Git 的基本概念与命令,如初始化仓库 (`git init`)、添加文件 (`git add`)、提交更改 (`git commit`)、检出分支 (`git checkout`)、合并分支 (`git merge`) 等,还分享了高级技巧如查看差异 (`git diff`)、撤销提交 (`git revert`)、修复合并冲突 (`git mergetool`) 和使用别名简化命令 (`git config --global alias.ci commit`)。
|
2月前
|
机器学习/深度学习 Shell 开发工具
Python使用管道执行git命令报错|4-7
Python使用管道执行git命令报错|4-7
|
2月前
|
存储 Linux 开发工具
Git基础命令,分支,标签的使用【快速入门Git】
本文详细介绍了Git版本控制系统的基础概念和常用命令,包括工作区、暂存区和版本库的区别,文件状态的变化,以及如何进行文件的添加、提交、查看状态、重命名、删除、查看提交历史、远程仓库操作和分支管理,还涉及了Git标签的创建和删除,旨在帮助读者快速入门Git。
Git基础命令,分支,标签的使用【快速入门Git】
|
2月前
|
存储 Linux 开发工具
掌握 Git 命令:每个开发者的必备技能
本文介绍 Git 的核心概念,如仓库、提交、分支与合并,并提供了常用命令,如初始化仓库 (`git init`)、提交更改 (`git commit -m &quot;Commit message&quot;`)、拉取 (`git pull`) 和推送 (`git push`) 等。此外,还分享了高级技巧,如撤销提交 (`git revert &lt;commit&gt;`)、交互式暂存 (`git add -i`) 和使用别名简化命令 (`git config --global alias.ci commit`) 等,帮助开发者提升效率。无论是初学者还是资深开发者,都能从中受益。