Git基本操作
1,从远程库拉取项目
1,远程仓库,如,(https://code.aliyun.com/)注册账户登录 2,如果有项目组,应该看得到项目 3,复制项目地址 4,git clone 复制项目,一般会在当前目录下有个完整的项目,所以要 cd 到项目目录中
2,本地创建项目推送到空的远程库
1,将这个目录变成 git 可以管理的仓库 git init 2,关联远程仓库地址 git remote add origin https://github.com/cade8800/ionic-demo.git
3,提交到远程库
1,添加到暂存区 git add . //所有文件 git add a.txt //某个文件 git add test/* //某个文件夹所有文件 2,提交到本地库 git commit -m '说明' //把文件提交到仓库 3,推送之前要先 pull 一下 git pull --rebase origin master //获取远程库与本地同步合并(远程库不为空必须做这一步) 4,推送到远程库 //其中的origin是你在clone远程代码时,git为你创建的指向这个远程代码库的标签,它指向repository。为了能清楚了解你要指向的repository,可以用命令git remote -v进行查看。master是你远程的branch,可以用git branch -a查看所有分支,远程分支是红色的部分。然后确定好这两个值后,将值换掉即可 git push --set-upstream origin master //同样根据自己的需要,替换origin和master。 两个命令的区别是第一条命令是要保证你的远程分支存在,如果不存在,也就无法进行关联。而第二条指令即使远程没有你要关联的分支,它也会自动创建一个出来,以实现关联。 git push -u origin master
4,git 设置
这个用户名和密码,当你提交代码会标记是谁提交的。
$ git config --global user.name "wirelessqa" $ git config --global user.email wirelessqa.me@gmail.com
5,git 基本命令
1,查看配置列表
git config --list
2,查看当前git仓库的状态
git status
3,git clone
该命令会在本地主机生成一个目录,与远程主机的版本库同名。如果要指定不同的目录名,可以将目录名作为 git clone 命令的第二个参数,第二个参数可以省略。
git clone <版本库的网址> <本地目录名>
4,git remote
为了便于管理,Git要求每个远程主机都必须指定一个主机名。git remote命令就用于管理主机名。
不带选项的时候,git remote命令列出所有远程主机。克隆版本库的时候,所使用的远程主机自动被Git命名为origin。如果想用其他的主机名,需要用git clone命令的-o选项指定
$ git remote origin
5,git fench
一旦远程主机的版本库有了更新(Git术语叫做commit),需要将这些更新取回本地,这时就要用到git fetch命令。
分支名可以省略,则取回所有分支 $ git fetch <远程主机名> <分支名>
6,git pull
git pull命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并
如果远程分支是与当前分支合并,则冒号后面的部分可以省略。 $ git pull <远程主机名> <远程分支名>:<本地分支名>
在某些场合,Git会自动在本地分支与远程分支之间,建立一种追踪关系(tracking)。比如,在git clone的时候,所有本地分支默认与远程主机的同名分支,建立追踪关系,也就是说,本地的master分支自动"追踪"origin/master分支
Git也允许手动建立追踪关系。
git branch --set-upstream master origin/next
7,git push
git push <远程主机名> <本地分支名>:<远程分支名>
6,删除操作
1,git rm -r <文件> //创建一个删除操作,删除工作区和暂存区 2,git rm -r --cached <文件> //创建一个删除操作,工作区需要,只是不希望被版本控制 2,git commit -m '注释' //提交 3,git push -u origin master //提交
7,撤销操作
1,撤销 add
git reset HEAD <file>
2,撤销 commit
查看自己的 commit
git reflog
git reset --soft HEAD^ //撤销一次 commit( 仅仅是撤回 commit 操作,代码仍然保留 ) git reset --soft HEAD~1 //撤销一次 commit( 仅仅是撤回 commit 操作,代码仍然保留 ) git reset --soft HEAD~n //撤销 N 次 commit( 仅仅是撤回 commit 操作,代码仍然保留 )
- mixed
意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。 - soft
不删除工作空间改动代码,撤销commit,不撤销git add . - hard
删除工作空间改动代码,撤销commit,撤销git add .
如果commit注释写错了,只是想改一下注释,只需要:
git commit --amend //此时会进入默认vim编辑器,修改注释完毕后保存就好了。
3,撤销已经 push 的
撤销 push 有两种方法, reset 和 revert
- reset 撤销到某次提交 此操作极其危险,不建议使用
1,git reset --soft 576b89dabf4ecb81f4f2cd353961f456556d93c7 //产生一个 commit 2,git push origin master -f //因为此时比远程库版本提前,此时需要强行覆盖远程库
- revert 撤销某次操作
1,git revert 576b89dabf4ecb81f4f2cd353961f456556d93c7 2,git push origin master
建议,你可以用git revert来撤销已经提交的更改,而git reset用来撤销没有提交的更改
8,分支操作
- 创建分支 这条命令不会自动切换到新的分支上去
git branch <branckName>
- 切换分支
git checkout <branckName> //切换分支 git checkout -b <branchName> //创建并切换分支
- 查看分支
git branch //查看所有分支,* 代表当前分支 git branch -v //查看分支详情
- 删除分支
git branch -d <branchName> //删除一个干净的分支 git branch -D <branchName> //强制删除一个分支
- 重命名分支
git branch -m <branchName> newName
- 合并分支
git merge <branchName> //将分支合并到当前分支 git merge --no-ff -m "msg" <branch_name> //合并分支时禁用Fast forward模式,会产生一个新的 commit
- 退回冲突前状态
git merge --abort
git merge --abort将会抛弃合并过程并且尝试重建合并前的状态
警告:运行git-merge时含有大量的未commit文件很容易让你陷入困境,这将使你在冲突中难以回退。因此非常不鼓励在使用git-merge时存在未commit的文件,建议使用git-stash命令将这些未commit文件暂存起来,并在解决冲突以后使用git stash pop把这些未commit文件还原出来
- 查看冲突的文件列表
git ls-files -u | cut -f 2 | sort -u
9,暂存:将修改的内容暂存起来
- 执行存储
git stash //默认备注 git stash save 'message' //添加备注
- 查看存储列表
git stash list
- 显示第 num 个改动
git stash show stash@{$num} -p
- 应用第 num 个存储
git stash apply stash@{1}
- 应用并删除第 num 个存储
git stash pop stash@{$num}
- 删除某个存储
git stash drop stash@{$num}
- 清空缓存
git stash clear
10,配置 SSH
没有配置 SSH 的时候,使用 SSH 方式 clone 会报错,每次 push 都需要输入账号密码。
1,生成密钥
ssh-keygen -t rsa -C "这里换上你的邮箱"
执行命令后需要进行3次或4次确认:
- 确认秘钥的保存路径(如果不需要改路径则直接回车);
- 如果上一步置顶的保存路径下已经有秘钥文件,则需要确认是否覆盖(如果之前的秘钥不再需要则直接回车覆盖,如需要则手动拷贝到其他目录后再覆盖);
- 创建密码(如果不需要密码则直接回车);
- 确认密码;
在指定的路径下会有 id_rsa 和 id_rsa.pub 两个文件,其中 id_rsa 是私钥,id_res.pub 是公钥。
2,github 配置
(1)打开配置项:
(2)选择 SSH GPG keys:
(3)选择 new SSH key
(4)打开 id_res.pub,把内容拷贝到 key 下的输入框
(5)保存成功就可以使用 ssh clone 了。
11,切换远程仓库
(1) 查看当前远程源
$ git remote -v origin https://github.com/fucn569/weather_django.git (fetch) origin https://github.com/fucn569/weather_django.git (push) #origin为此项目的远程源名称
(2) 删除当前远程源
$ git remote rm origin #再使用git remote -v无输出信息,则成功删除
(3) 添加新的远程源
$ git remote add origin git@gitee.com:longxiaqiu/weather_django.git #origin为远程源名称,git@gitee.com:longxiaqiu/weather_django.git为ssh链接
(4) 关联本地与远程源的分支
git push --set-upstream origin main
本文作者:Hi.PrimaryC
本文链接:https://www.cnblogs.com/cnff/p/14422576.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步