Git是一个分布式的版本控制软件;
要保留之前所有的版本,以便回滚和修改。
安装Git软件有很多方式:
https://git-scm.com/download/winhttps://git-scm.com/download/linuxhttps://git-scm.com/download/mac想让git对一个目录进行版本控制需要对目录初始化;
1.进入要管理的文件夹
2.执行初始化命令
sh-3.2# mkdir appssh-3.2# cd apps/# 这个时候这个目录初始化完成,可以进行工作;sh-3.2# git initInitialized empty Git repository in /private/etc/apps/.git/#会发现多了一个目录.gitsh-3.2# ls -ltotal 0drwxr-xr-x 9 root wheel 288 8 26 17:48 .gitsh-3.2# cat haitang.txt haitang# 新增的文件和修改过的人间都是红色的,这里显示新增了一个文件的状态是未追踪状态,使用git add来对其进行管理sh-3.2# git statusOn branch masterNo commits yetUntracked files: (use "git add <file>..." to include in what will be committed) haitang.txtnothing added to commit but untracked files present (use "git add" to track)sh-3.2# git add haitang.txt # 这个时候这个文件由红色变成了绿色。sh-3.2# git statusOn branch masterNo commits yetChanges to be committed: (use "git rm --cached <file>..." to unstage) new file: haitang.txt说明是谁在使用;
sh-3.2# git config --global user.email "haitang@qq.com"sh-3.2# git config --global user.name "haitang"使用commit提交。"里面为描述信息"sh-3.2# git commit -m "海棠one"[master (root-commit) 61dbe71] 海棠one 1 file changed, 1 insertion(+) create mode 100644 haitang.txt这里可以看到提交的历史记录sh-3.2# git logcommit 61dbe71f56fc1176d6f158fef61572b3515db841 (HEAD -> master)Author: haitang <haitang@qq.com>Date: Fri Aug 26 17:58:50 2022 +0800 海棠one添加一行执行add执行回滚操作。
sh-3.2# echo "海棠two" >> haitang.txt对这个文件进行追踪sh-3.2# git add .再次提交至本地版本库sh-3.2# git commit -m "haitang two"[master 65a1399] haitang two 1 file changed, 1 insertion(+)查看日志sh-3.2# git logcommit 65a13999930ce95cd59fc09e1423ab20dcc402c6 (HEAD -> master)Author: haitang <haitang@qq.com>Date: Fri Aug 26 18:03:28 2022 +0800 haitang twocommit 61dbe71f56fc1176d6f158fef61572b3515db841Author: haitang <haitang@qq.com>Date: Fri Aug 26 17:58:50 2022 +0800 海棠one进行回滚, 回滚方式为 git reset --hard 版本号 这个版本号不用全部写完,7位即可sh-3.2# git reset --hard 61dbe71HEAD is now at 61dbe71 海棠one验证是回滚完成sh-3.2# cat haitang.txt haitang可以通过reglog查看历史全部的记录
sh-3.2# git reflog61dbe71 (HEAD -> master) HEAD@{0}: reset: moving to 61dbe7165a1399 HEAD@{1}: commit: haitang two61dbe71 (HEAD -> master) HEAD@{2}: commit (initial): 海棠one要想回到haitangtwo执行git rest --hard 版本号即可;sh-3.2# git reset --hard 65a1399HEAD is now at 65a1399 haitang twosh-3.2# cat haitang.txt haitang海棠twomaster前面有个*表示是在master分支
sh-3.2# git branch * mastergit branch xx分支名
sh-3.2# git branch dev可以看到创建的dev分支sh-3.2# git branch dev* master显示已经切换为dev分支
sh-3.2# git checkout devSwitched to branch 'dev'可通过branch来查看在哪个分支,可以看见dev分支前面有一个*sh-3.2# git branch * dev master在dev分支上创建文件并提交sh-3.2# touch dev.txt && echo "hello git" > dev.txtsh-3.2# git add .sh-3.2# git commit -m "dev 第一次提交"[dev ea353ff] dev 第一次提交 1 file changed, 1 insertion(+) create mode 100644 dev.txt 在master分支上合并dev分支上的代码;sh-3.2# git checkout masterSwitched to branch 'master'在master分支上合并dev分之上的代码;sh-3.2# git merge devUpdating 65a1399..ea353ffFast-forward dev.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 dev.txt 没有合并之前,在master分支上是看不见dev分支上的代码; sh-3.2# cat dev.txt hello gitgit branch -d 分支名
sh-3.2# git branch -d devDeleted branch dev (was ea353ff).删除了可以看见就剩下一个分支sh-3.2# git branch* mastergithub:
gitlab:
gitee:https://gitee.com/
选择gitee来测试


添加仓库,注意我们配置的是SSH类型sh-3.2# git remote add origin git@gitee.com:good-news/apps.git我们为什么能上传代码到远程仓库呢?因为我们把公钥放在了gitee,我现在把公钥拿掉,验证是否能push
sh-3.2# git push origin masterEnumerating objects: 9, done.Counting objects: 100% (9/9), done.Delta compression using up to 16 threadsCompressing objects: 100% (4/4), done.Writing objects: 100% (9/9), 699 bytes | 699.00 KiB/s, done.Total 9 (delta 0), reused 0 (delta 0)remote: Powered by GITEE.COM [GNK-6.4]To gitee.com:good-news/apps.git * [new branch] master -> master6.4.1 编辑第三次提交sh-3.2# echo "haitang three" >>haitang.txt6.4.2 追踪文件sh-3.2# git add .上传至本地版本库sh-3.2# git commit -m "haitang three"[master 9c303e7] haitang three 1 file changed, 1 insertion(+) 6.4.3 这里看到是不能上传的,因为把公钥拿掉了。sh-3.2# git push origin mastergit@gitee.com: Permission denied (publickey).fatal: Could not read from remote repository.拿到本地的公钥上传至gitee个人账户下sh-3.2# cat /var/root/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDZRnFbJGoALs8wMC+EJS7Yewdre8XDaheQNW6U0gmf30mZvzIspqbr5uIVnIwQaT5usYgy2EGjJ2xLRrxfwE2I8UKDyeothIM6zeQxW9Ah+tXeIgWSbX83esMRx/PxysGp4IIykW8+C5Lt3/aUWD7ABHYU2Di4aSj/71+76z877/wrgPYaWvAarU+ZRBzV7oYyXeLLy7lLuxZkFyfyArjzL7pDslOTj+fGcfAUyeOdUjyWhL+7CtvaY/fyXU/hkw9k770XNKQh4QYjZztS/FhJnwOi8OcS2j7kLJDAiaJYKKpCamAec7/f2e16f+HWCz41Wc4DFfJvlyo1/x6ADLnMmPoFoZrKLYOOxlKlCu9/SAomMOCf0qxyl
这次上传是没有问题的
sh-3.2# git push origin masterEnumerating objects: 5, done.Counting objects: 100% (5/5), done.Delta compression using up to 16 threadsCompressing objects: 100% (2/2), done.Writing objects: 100% (3/3), 292 bytes | 292.00 KiB/s, done.Total 3 (delta 0), reused 0 (delta 0)remote: Powered by GITEE.COM [GNK-6.4]To gitee.com:good-news/apps.git ea353ff..9c303e7 master -> master