Git基本操作

本文详述了Git的分布式特性与版本控制功能,包括如何回退版本、查看历史及管理文件。还介绍了分支管理,如创建、切换、合并与解决冲突的策略。此外,讲解了使用SSH公钥、克隆项目、推送分支以及远程分支的拉取操作。最后,提到了禁止快速合并和处理bug的临时分支策略。
摘要由CSDN通过智能技术生成

两大特点:
分布式:在各自电脑上完成
版本控制:找回历史代码

git reset --hard HEAD^ 回到上一个版本
git reset --hard 版本号一部分 回到指定版本
git log 查看当前版本
cat code.txt 查看文件内容
git commit -m “说明信息” 创建不同的版本,说明信息是可以一样的,提交的序列号一定不一样

git add 文件修改添加修改到暂存区
git commit 提交修改,把暂存区的所有内容提交到当前分支

git status 查看当前的状态

管理和修改:
git add 更新提交的内容
git checkout(restore) 丢弃工作去的改动 git checkout – code.txt

放到暂存区后,想丢弃这个改动
1、git reset HEAD code.txt 重置取消暂存的变更
2、重新回到工作区
3、丢弃工作区的改动

对比文件的不同:
对比工作区和版本库不同
git diff HEAD – code.txt
—前版本 ++ 工作区的版本

对比两个版本之间的不同:
git diff HEAD HEAD^ – code.txt

删除文件
rm code2.txt
git checkout – code2.txt

git rm code2.txt
git status
命令git rm 用于删除一个文件,如果一个文件已经被提交到版本库,就不会担心误删
但要小心,只能恢复文件的最新版本,会丢失最近一次提交后修改的内容

git中有工作区,版本库和暂存区
1、编辑文件都是在工作区
2、git add 是把工作区的修改进入暂存区
3、git commit是把暂存区的修改一次性做一次版本记录

【分支管理】
查看分支 git branch
创建并切换分支 git checkout -b dev
切换分支 git checkout master
合并 git merge dev (快速合并)
删除分支 git branch -d 分支名

【解决冲突】
git merge dev 进行合并从而产生冲突
rong@ubuntu:~/Desktop/git_test$ vi code.txt
rong@ubuntu:~/Desktop/git_test$ git add code.txt
rong@ubuntu:~/Desktop/git_test$ git commit -m “solve conflict”
[master 866a827] solve conflict
rong@ubuntu:~/Desktop/git_test$ git log --pretty=oneline
git log --graph --pretty=oneline 查看具体的分支结构
git branch -d dev 删除dev分支

【分支管理策略】
有时快速合并没有成功,而且合并没有冲突,合并之后做一次新的提交

git branch -b dev 创建并切换到新的dev分支
git log --pretty=oneline 详细信息,提交记录
vi code3.txt 新建一个文件 添加内容
rong@ubuntu:~/Desktop/git_test$ vi code3.txt
rong@ubuntu:~/Desktop/git_test$ git add code3.txt 添加
rong@ubuntu:~/Desktop/git_test$ git commit -m “chuangjian file code3.txt” 提交
git checkout master 切换分支
git merge dev 合并分支,打开一个gnu界面,输入信息,ctrl+x退出则会自动合并
(不能进行快速合并的时候,就会合并出做一次新的提交)
git branch -d dev 合并完成之后则可以删除分支

【禁止执行快速合并】
git merge --no-ff -m “jinyong fast_forward” dev
git log --graph --pretty=oneline 分支图

【禁用bug分支】
软件开发中,有bug就需要修复,在git中,分支强大
每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除
git 里面提供一个stash功能,可以把当前工作现场 储藏起来,等以后回复现场后继续工作

rong@ubuntu:~/Desktop/git_test$ vi code3.txt
rong@ubuntu:~/Desktop/git_test$ git status
rong@ubuntu:~/Desktop/git_test$ git stash
Saved working directory and index state WIP on dev: 59f0207 jinyong fast_forward
rong@ubuntu:~/Desktop/git_test$ git status
【新建分支,修复bug】
git check -b bug001
vi code.txt
git add code.txt
git commit -m “restore bug001”
git checkout master
git merge --no-ff -m “restore bug001” bug001 合并分支
git branch -d bug001 删除分支
到此刻,bug已经修复完成
回到刚才的工作区
git checkout dev
git status
git stash list 列出保存的工作现场
git stash pop 恢复现场
git status 现场就回来了

【添加ssh公钥】
rong@ubuntu:~/Desktop/git_test$ cd
rong@ubuntu:~$ ls
Desktop Downloads Pictures snap Videos
Documents Music Public Templates
rong@ubuntu:~$ vi .gitconfig
rong@ubuntu:~$ ssh-keygen -t rsa -C ‘rong@example.com’
Generating public/private rsa key pair.
Enter file in which to save the key (/home/rong/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/rong/.ssh/id_rsa
Your public key has been saved in /home/rong/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:dFLyYLHJmutPUNcQp5RA6bHbCFtyM2RsNIp/PuhUeq8 rong@example.com
The key’s randomart image is:
±–[RSA 3072]----+
| +X+=o. |
| . +BX.= |
| . .=Bo= . |
| .o=B+ |
| =S |
| .Oo . |
| = = |
| + o o |
| o.E… |
±—[SHA256]-----+
rong@ubuntu:~$ cd .ssh/
rong@ubuntu:~/.ssh$ ls
id_rsa id_rsa.pub
rong@ubuntu:~/.ssh$ cat id_rsa.pub
得到这个.pub文件的内容之后,复制粘贴就行

【克隆项目】
首先区github中找到ssh地址,等待克隆成功
rong@ubuntu:~/Desktop$ git clone git@github.com:Rong-nuoflypersist/learn1.git
Cloning into ‘learn1’…
The authenticity of host ‘github.com (13.229.188.59)’ can’t be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no/[fingerprint])? y
Please type ‘yes’, ‘no’ or the fingerprint: yes
Warning: Permanently added ‘github.com,13.229.188.59’ (RSA) to the list of known hosts.
remote: Enumerating objects: 7, done.
remote: Counting objects: 100% (7/7), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 7 (delta 1), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (7/7), done.
Resolving deltas: 100% (1/1), done.
rong@ubuntu:~/Desktop$ ls
git_test learn1
rong@ubuntu:~/Desktop$ cd learn1
rong@ubuntu:~/Desktop/learn1$ ls
README.md
rong@ubuntu:~/Desktop/learn1$ ls -al
rong@ubuntu:~/Desktop/learn1$ git log

【克隆出错】
eval “$(ssh-agent -s)”
ssh-add

【推送分支】
git push origin 分支名称 把该分支上的所有本地提交推送到远程

【本地分支跟踪远程分支】
git branch --set-upstream-to=origin/smart smart
已经跟踪的前提下,如果要推送本地的分支
直接git push 即可

【远程分支对应的代码拉取到本地】
git pull origin smart

master:用于保存发布的项目代码
dev: 保存开发过程中的代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值