1、虚拟机VMware安装Ubuntu 2、ubuntu安装openssh-server:
sudo apt-get install openssh-server
3、ubuntu安装最新版git:
sudo add-apt-repository ppa:git-core/ppa
sudo apt update
sudo apt-get install git
4、生成本地密钥(主要为了生成.ssh目录):
ssh-keygen -t rsa
5、创建authorized_keys文件:
touch authorized_keys
6、本地windows安装git 7、本地安装xshell软件
定义: git是分布式版本管理工具,github是免费的代码托管平台,一般公司自己有代码托管平台,如gitlab。
git的作用: 1、保存文件的所有修改历史记录 2、可随时查看历史版本记录 3、可回退到指定历史版本 4、对比不同版本的文件差异 5、使用版本号进行区分
git的意义: 1、多人协作开发大型项目。 2、为协作开发而生,大势所趋。 3、每个人都从代码库下载代码,然后修改,将所有人的代码合并后统一上传到平台。 4、每个公司都有自己的代码托管平台,github是免费的、开源的托管平台。
在远端创建裸仓库,实验环境就是虚拟机的Ubuntu中创建。
mkdir mathlib
cd mathlib
git init --bare
拉取远端仓库到本地,格式如下:
git clone ssh://username@ipaddress:path name
# 例如:git clone ssh://FLY@192.168.1.1:/home/wokspace/mathlib myMathlib
如果不指定文件夹名称,则将会创建一个和远端仓库同名的文件夹。拉取的文件夹名称可以随意修改,里面的.git目录是本地仓库
#局部配置
git config user.name name
git config user.email email@email.com
#全局配置
git config --global user.name name
git config --global user.email email@email.com
局部配置 只会在当前仓库目录有效,查看配置信息使用:git config --local -l。配置信息保存在当前仓库的.git/config。 全局配置 可以对所有仓库目录有效,查看配置信息使用:git cofig -l。配置信息保持在系统盘的用户目录里的.git/config
使用ssh协议,需要生成公钥和私钥;公钥放在远端服务器,私钥用于登录验证。使用如下命令生成公私钥:
ssh-keygen -t rsa
产生的文件位于系统盘的用户目录里的.ssh文件夹,id_rsa.pub就是公钥文件,id_rsa就是私钥文件。将id_rsa.pub里的内容复制到远端服务器的.ssh/authorized_keys里即可免密访问远端仓库。
git status
untracked files......表示文件还没被管理
SVN是没有暂存区的,git可以把多次修改放在暂存区。
# 格式:
git add filename
# 示例:
# 当前的所有修改添加到暂存区
git add .
# 指定文件添加到暂存区
git add newfile.c api.h
一般格式:
git commit file -m "message"
示例:将当前暂存区文件全部提交的本地仓库管理。
git commit . -m "feat:new file"
git push origin master
git pull
6.1、暂存区到工作区index-->workspace git restore -S filename 撤消工作区的修改返回到最近一次add(暂存区)的版本或者最近一次commit的版本 6.2、本地仓库到暂存区repository-->index git restore --soft version 示例:回退到上一个版本。 git restore --soft head^ head^表示上一次的提交。 6.3、本地仓库到工作区 repository --> workspace git restore --mixed version 示例:回退到上一个版本。 git restore --mixed head^ head^表示上一次的提交。 6.4、本地仓库中删除提交repository --> NULL git restore --hard version # 删除上一个版本 git restore --hard head^ head^表示上一次的提交。 6.5、restore不带参数默认是--mixed git restore vesrion 等同于 git restore --mixed version 6.6、工作区撤销修改workspace--> NULL # 放弃工作区所有修改 git checkout . # 放弃指定文件修改 git checkout --file # 放弃暂存区和工作区的所有修改 git checkout -f . 类似于重置,清除修改标志,撤销已有文件修改的地方,但不会删除新增的文件(需要手动去删除)。
7.1、整理上次提交 git commit –-amend 把当前暂存区里的内容合并到上一次commit里,而且还可以修改上一次提交的message信息 7.2、修改任意的提交 # 修改hash1之后的提交信息(不包含hash1) git rebase -i hash1 # 修改hash1到hash2的提交信息(不包含hash1) git rebase -i hash1 hash2 这是一种左开右闭的区间,hash1 hash2分别表示版本号,如果后面不跟版本号,那么默认是最近的两次,此时进入vi编辑: 输入相应参数,比如输入p和e 然后编辑要修改的文件 再通过add添加到暂存区 再通过 git commit --amend整理进去 最后 git rebase --continue完成整理 如果在修改前所有的commit都已经push到远程仓库的话,需要使用: git push --force 强制推送到远程仓库。 注意: 一定是个人分支整理,否则可能会修改别人的依赖引起其他人的冲突,因为每次提交的hash值都是不同的。
分支的作用是使分支独立变化,互不依赖。 8.1、查看分支 # 列出本地仓库分支 git branch #列出本地和远端的分支 git branch -a 8.2、创建分支 # 创建分支 git branch develop # 创建并切换分支 git checkout -b develop develop是分支名称。 8.3、切换分支 git checkout name git switch name name表示分支的名称。 8.4、合并分支 步骤: # 切到master git pull # 解决冲突(解决master的冲突,保证代码最新) git add . git merge --continue //(git update-ref -d MERGE_HEAD) git commit . -m "message" git merge develop # 解决冲突(解决两个分支的冲突,实现合并) git add . git merge --continue //(git update-ref -d MERGE_HEAD) git commit . -m "message" git push origin master 8.5、删除分支 # 删除本地分支 git branch -d develop # 删除远端分支 git push origin -d develop develop表示分支的名称。
git init
命令,我们可以将一个目录初始化为Git仓库,开始进行版本控制。git add
命令将文件添加到暂存区,然后使用git commit
命令将暂存区的变更提交到仓库,并附上一条有意义的提交消息。git reset
和git revert
命令。这些命令能够帮助我们修复错误或不必要的提交。通过掌握这些基本操作和概念,具备使用Git进行版本控制的基础知识。继续实践和学习,将能够更好地管理和保护代码,并更加高效地与团队合作。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。