文章目录
一、git安装
- windows安装就不说了, 下载安装包,下一步就可以了
- ubuntu下安装
sudoapt-get update
# 安装需要的插件sudoapt-getinstall libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev
# 安装gitsudoapt-getinstallgit# 查看版本sudogit--version
- 配置个人的用户名和电子邮箱
git config --global user.name "名字"git config --global user.email "邮箱"# 查看配置git config --list--global# 配置也可以在 ~/.gitconfig 或 /etc/gitconfig 看到
这里加上 --global 是全局的配置, 如果想要在某个特定的配置中使用单独的配置就将–global去掉
- 配置ssh
ssh-keygen -t rsa -C "邮箱地址”
一直enter, 会在这个路径下生成两个文件
将.pub文件的内容复制到,github或者gitlib中
- 在gitlib中的Setting中的ssh keys写入秘钥。或直接搜索 ssh keys, 输入秘钥
- 到此git基本安装与配置就结束了
二、git本地版本库命令说明,时光穿梭
- 创建版本库
# 创建文件夹mkdir gittest
# 创建版本库git init
ll
# 文件夹中出来一个.git文件夹, 后续跟踪管理版本库
- 创建文件readme.txt
vim readme.txt
# 写入git 01
git 02
- 将文件放人git文本库
# 第一步gitadd readme.txt
# 第二步git commit -m"说明"
- 查看
# 查看状态git status
# 查看改了什么gitdiff readme.txt
2.1 版本回退
- 查看版本修改记录
git log
# 简化信息git log --pretty=oneline
- 版本回退
# 回到上一版本是HEAD^, 上上版本是HEAD^^, 还可以写数字HEAD~100git reset --hard HEAD^
git reset --hard 版本号
# 如果找不到版本号了,查看历史命令git reflog
2.2 git版本库原理,工作区暂存区
2.3 管理修改
- 如果不git add, 虽然你改了文件, 但是你commit的时候版本库不会管理,这就是为什么说git是管理修改,而不是管理文件
- 举例:
# 改变readme.txt# git add# 改变readme.txt# git comiit # 你会发现只有第一次修改的内容提交了, 第二次没有
2.4 撤销修改
- 当你没有add之前,直接丢弃工作区的修改
# 让文件回到最近一次git commit或git add时的状态git checkout -- readme.txt
- 如果你已经add到了暂存区
# 将暂存区的内容撤销到,回退到工作区git reset HEAD readme.txt
- 如果已经commit到版本库
git reset --hard HEAD^
2.5 删除文件
- 删除
# 方法一gitrm readme.txt
git commit -m'删除了readme.txt'# 方法二rm readme.txt
gitaddgit commit -m'删除了readme.txt'
- 恢复
git checkout -- readme.txt
三、git 远程库操作说明
3.1 添加到版本库
- 按照提示,将本地库推送到远程库
# origin 远程版本库的名字,一般默认是origin, 可以改git remote add origin “自己创建的ssh,界面会提示”
# -u 是将本地master和远程master关联git push -u origin master
# 后续push 只用git push origin master
# 查看远程库信息git remote -v# 删除远程库, 其实是解除关联, 不是真的删除git remote rm origin
3.2 克隆版本库
- 如果是从零开发, 最好是从远程新建,然后克隆到本地
git clone ‘复制上图内容’
# 每次编辑前, 拉取最新代码 git pull
四、git分支管理
- git分支
# 创建分支git branch 分支名
# 查看分支git branch
# 切换分支git checkout 分支名 或者 git switch 分支名
# 创建加切换git checkout -b 分支名 或者 git switch -c 分支名
# 合并某分支到当前分支git merge 分支名
# 删除分支git branch -d 分支名
- 解决冲突
# 创建分支devgit switch -c dev
# 修改readme.txt 最后一行# 在dev分支上提交gitadd readme.txt
git commit -m"change 03"# 切换到master分支git switch master
# 修改readme.txt 最后一行# 在master分支上提交gitadd readme.txt
git commit -m"change 04"# 合并分支git merge dev
# 会出现分支冲突, 查看改变git show readme.txt# 查看冲突cat readme.txt
# 将文档同步后重新add和commit, 然后merge# 查看分支图git log --graph# 强行删除分支git branch -D dev
五、版本打包
- 什么是tag:相当于快照,某一时刻的版本打包以后, 无论什么时候取都是这也个代码
- 操作
# 第一步、先切换到要打包的分支git branch
# 第二步、打标签git tag v1.0
# 查看标签git tag
# 历史版本打标签git log --pretty=oneline --abbrev-commit
git tag
# 参数-a 标签名。 -m标签说明git tag -a v0.1 -m"version 0.1 " 1094adb
git show <tagname># 删除标签git tag -d v0.1
# 推送标签到远程git push origin v1.0
# 一次性推送所有标签git push origin --tags# 删除远程标签,先删除本地,再从远程删除git tag -d v0.9
git push origin :refs/tags/v0.9
六、搭建git仓库
- 安装git
sudoapt-getinstallgit
- 创建一个git用户,用来运行git服务
sudo adduser git
- 创建证书
收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。
- 初始化Git仓库
# 先选定一个目录作为Git仓库,假定是/srv/sample.git,在/srv目录下输入命令sudogit init --bare sample.git
- Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git
sudochown-R git:git sample.git
- 禁用shell登录
# 出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行
git:x:1001:1001:,,,:/home/git:/bin/bash
# 改为
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
# 这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
- 克隆远程仓库
# 可以通过git clone命令克隆远程仓库了,在各自的电脑上运行git clone git@server:/srv/sample.git
- 如果团队很小,把每个人的公钥收集起来放到服务器的/home/git/.ssh/authorized_keys文件里就是可行的。如果团队有几百号人,就没法这么玩了,这时,可以用Gitosis来管理公钥。
引用文件
git常用命令pdf
本文转载自: https://blog.csdn.net/zpp15603669517/article/details/125727991
版权归原作者 永久_小玖 所有, 如有侵权,请联系我们删除。
版权归原作者 永久_小玖 所有, 如有侵权,请联系我们删除。