赞
踩
git学习网站
一、安装Git
二、基础操作
1、创建git仓库
新建一个文件夹,在该文件夹中右键选择git bash,输入git init
创建仓库,会有一个隐藏的文件.git文件,是看不到的。(Git命令必须在Git仓库目录内执行,git init除外,在仓库目录外执行是没有意义的。)
2、加入文件
之后可以将你想要修改的文件放入建立的文件夹中,输入git add 文件名
将文件添加到git仓库中。再使用git commit -m "文件修改说明"
把文件提交到git仓库。
为什么Git添加文件需要add,commit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件再使用commit提交命令。
3、修改文件
git status
命令可以让我们时刻掌握工作区当前的状态,可以告诉我们哪个文件被修改了。git diff 文件名
查看工作区和暂存区差异,可以告诉我们文件修改了什么内容。修改完后提交文件步骤与2相同,都是先add再commit.git log
显示从最近到最远的提交日志git reset --hard HEAD^
可以将HEAD指针指向上一个版本,这样文件内容就回退到上一版本了。git revert
git reflog
(用来记录你的每一次命令)找到命令记录,然后通过$ git reset --hard 1094a
回到未来的版本,其中1094a是commit id的前5位。git checkout -- 文件名
把该文件所在工作区的修改全部撤销,就是让这个文件回到最近一次git commit
或git add
时的状态。其实是用版本库里的版本替换工作区的版本。总结:
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout – file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD ,就回到了场景1,第二步按场景1操作。
rm 文件名
删除文件。然后从版本库中删除该文件,利用git rm 文件名
和git commit
彻底删除该文件。如果是误删,可以利用git checkout -- 文件名
进行恢复。
Git管理的文件分为:工作区,版本库,版本库又分为暂存区stage和暂存区分支master(仓库)
工作区>>>>暂存区>>>>仓库
git add把文件从工作区>>>>暂存区,git commit把文件从暂存区>>>>仓库,
git diff查看工作区和暂存区差异,
git diff --cached查看暂存区和仓库差异,
git diff HEAD 查看工作区和仓库的差异,
git add的反向命令git checkout,撤销工作区修改,即把暂存区最新版本转移到工作区,
git commit的反向命令git reset HEAD,就是把仓库最新版本转移到暂存区
4、远程仓库
通过SSH连接远程仓库:
步骤:
ssh-keygen -t rsa -C "youreamil"
一路按回车,最后可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥。
5、分支管理
分支对于团队来说作用太大了。比如说一个项目现在是1.0版,那么开发团队可能要同时进行1.1版和2.0版的开发,这样代码就会出现较大分歧。这时候就需要用到分支了,不同的任务组在不同的分支上开发,互相之间不会影响。再比如说,需要向项目中添加一个新功能,一般的团队都不会直接在主分支上修改,都会新建一个分支,在上面更改代码。这样做的好处就是保证主线代码的完整性和可用性,也就是说,主线上(master)都是稳定的代码,可以直接拿来发布的。
master是指向提交的,HEAD指向的就是当前分支。dev指向新创建的分支。假如我们在dev上的工作完成了,就可以把dev合并到master上(就是直接把master指向dev的当前提交)。
$ git branch dev 创建分支
$ git checkout dev 切换分支
$ git switch dev 切换分支(新版本才有)
$ git checkout -b dev相当于创建并切换分支
$ git branch 命令会列出所有分支,当前分支前面会标一个*号。
$ git branch -f master HEAD^或者HEAD~2使master指向HEAD指向的地方
$ git add 文件名
$ git commit -m "branch test"
// 1 切换到要保留的分支——这里是master
git checkout master
// 2 合并掉分支dev
git merge dev
第二种合并分支的方法是 git rebase。Rebase 实际上就是取出一系列的提交记录,“复制”它们,然后在另外一个地方逐个的放下去。
Rebase 的优势就是可以创造更线性的提交历史,这听上去有些难以理解。如果只允许使用 Rebase 的话,代码库的提交历史将会变得异常清晰。
git branch -d dev
git log --graph
命令可以看到分支合并图。Fast forward
模式,但这种模式下,删除分支后,会丢掉分支信息。合并分支时,加上--no-ff
参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。我们想将一个 分支上的工作复制到 另外一个 分支上。
git cherry-pick 名字(这些提交记录的哈希值,可以有多个)
git fetch
完成了仅有的但是很重要的两步:
从远程仓库下载本地仓库中缺失的提交记录
更新远程分支指针(如 o/master)
git fetch 实际上将本地仓库中的远程分支更新成了远程仓库相应分支最新的状态。
git pull
就是 git fetch 和 git merge 的缩写(即先从远程下载本地没有的提交记录,再将其与本地记录进行合并)。从远程服务器获取到一个branch分支的更新到本地,并更新本地库,叫做pull.
把本地库的内容推送到远程,用git push
命令
例子:从github上新建一个仓库,在vscode项目文件夹的终端命令中git clone
+新建仓库地址。将文件拷贝到下载的文件中,随后git add
. 然后git commit -m " 项目初始化"
,git push
之后,登录github.
如果不想拷贝,想直接把本地库的代码上传到github,则 git remote add origin 仓库地址
,随后git push -u origin master
第一次推送master分支的所有内容;此后,每次本地提交后,只要有必要,就可以使用命令git push origin master
推送最新修改;
git init
git add .
git commit -m "My Vue Demo"
git remote add origin https://github.com/JoshuaTian/LearnVue.git
git push -u origin master
6、gitee的使用
转自https://www.cnblogs.com/yiven/p/8465054.html
--------------------------------- -git日常翻车小记分界线
呜呜呜,我走了多少弯路才成功哦,有多少次我误删自己的文件把自己气炸了。记录一下在vscode中的代码传到gitee.
先建立一个空的文件夹,在该文件夹里运行git bash命令。之后输入git clone 路径,从vscode中打开该文件,在左下角切换想要修改的分支,之后修改文件,在左边竖栏里的点击修改文件的图标,点击勾之后输入git push命令。
我又来了,刚刚把我的分支合并到主分支的时候因为有冲突,不能直接Pull request直接合并,需要手动合并,git checkout master,git pull origin 路径 分支名,解决好冲突后,git commit -m"",git push origin master,解决冲突的时候注意了啊,还是需要你自己手动改的,不要一直选择当前更改啥的,把别人东西删了你才会后悔哦。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。