git学习笔记之快速入门

​​git是什么?​​

Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的虚拟化技术包括哪些版本控制软件。

git的用途

个人理解:

  • git是一个非常好的多人协作的工具,而且功能也十分强大。
  • 对于个人来说,git是管理云计算与物联网的关系你写的大大小小项目的一个工具,你可以把你写的笔记、代码上传到远程仓库,也可以在远程仓库c云计算技术与应用lone别人写的项目推送是什么意思、查看别人写的笔记。官方远程仓库有github,国内仓库有码云。

git的安装

​​在windows上安装git​​

​​在linux上安装git​​

​​ggithub直播平台永久回家ithub的注册和使用​​

github适合个人使用,这里我只讲述连接远程仓库的两种方式。

  • 第一种:HTTPS方式

  • 第二种:SSH方式,虚拟化资源指一些可以实现一定操作对于初学者,不知道ssh在哪里,我的在C:\Users\asus.ssh,找到id_rsa.pub,以记事本的方式打开复制,登录到自己的githu虚拟化的主要特征b,点击右上角的头像,再点击Settings,找到SSH and GPKgitee keys 点击 ,右上角有个New SSH key 的按钮点击,随便填一个Title,再把你刚才复制的东西粘贴到Key框里,然后点击Add SSH key,就可以用SSH克隆项目了。
    (如果找不到.ssh,在计算机里搜索)

git配置全局变量

配置用户名邮箱:

git config --global user.name stefan
git config --global user.email 502681863@qq.com

这样你提交的远程分工作区子系统支就显示你的信息了工作区

当然你也可以找到git的配置文件.gitconfig,进行修改。我的在C:\Users\agithub镜像sus下面,如果找不到可以搜索文件名.gitconf推送稿怎么写ig。

我的以记事本打开是这样的:

[user]
name = Stefan
email = 502681863@qq.com
signingkey = stefan0712
[credential]
helper = manager
[filter "lfs"]
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
process = git-lfs filter-process
required = true
[color]
ui = true
[alias]
st = status
cm = commit -m
ck = checkout
plo = pull origin
ps = push
a =add .

刚才以命令设置的云计算在生活中的应用name和email都在这个文件里。

git使用逻辑

个人使用:

想把本地的一个项目上传到github,并且之前也没有与远程有连接。

步骤:

1. 打开项目文件夹,右击选中​​Git Bgitiush Here​​,打开git命令框,输入​​git init​​ 即把当前的目录变成可以github下载管理的git仓库,生成隐藏.git文件。

2. 在github里新建一个项目,复制HTTPS地址或者SSH地址

3. 在gi工作区子系统所指的范围是t命令里输入​​git remote add origin https工作区://github.云计算技术与应用专业com/StefanPython/demo.git​​与远程新建的项目建立连github中文官网网页接。

4. 查看远程库的信息,输入命令​​git remote​​,显示origin就证明建立连接成功。

5. 现在就可以上传项目到远程仓库了,​​git status​​ 查看文件在git仓库中的状推送服务是干什么用的态,显示红色说明文件还在本地工作区

6. 命令行输入​​git add .​​ 将所有的文件添加到暂存区,现在git status 文件显示绿色。

7. 命令行输入​​git commit -m "新建什么,修改什么"​​,这样就是把文件提交到版本库

8. ​​git push -u origin master​​ 将项目推送到远程仓库(同时也将本地分支master云计算与物联网的关系送到远程)github中文官网网页,登上github打开刚新建的项目,刷新就会出现你推送的东西。(第一次推送要加工作区资源的预配包是什么-u,这样以后就推送通知在哪里关掉可以直接git push,不用再加 origin master)

9. 实际虚拟化怎么开启工作中对本地项目的修改再推送到远程就是重复5-8的步骤

在远程先建立一个项目,把空项目clone到本地

步骤:

1. 在github上新建一个空项目,复制github开放私库HTTPS或者SSH

2. 在本地盘中随便找一个地方右键打开git命令窗,输入​​git clone git@github.com:StefanPython/demo.git​​ 本地就会出现一个和远虚拟化技术包括哪些程一样的项目,并且已经和远程建立了连接。

3. 如此就可以使用命令

git status
git add .
git commit -m "修改"
git push(这里是直接可以push的,因为把远程master也克隆下来了)

​​多人协作​​:

多人协作和个人使用的云计算最简单解释最大区别是,多个人在一个分支下提交,这就避免不了工作区域是什么意思有冲突。个人使用的时候应该是几乎不会出现冲突。

多人协作步骤:

1. 新建项目,默认有一个主分支master,还要新建一个dev虚拟化技术已经成为构建云计算elop分支,简称dev,一般都是在dev分支下工作的,到最后项目测试基本完成,要发布了,就把dev分支云计算技术与应用下的项目合并到master分支上。master分支基本不做改动,只做项目github官网版本的更新。

2. 让每一个协作者克隆远程项目到本地,自然也就克隆了master分支和dev分支,切换到dev分支下进行工作。

3. 有时候别人修改了一个地方已经提交到远程了,自己也修改了同样的地方,自己推送微信号给别人也要push时却失败了,云计算最简单解释这是因为giti远程项目的版本是最新的,虚拟化学实验室可能和你修改的有冲突虚拟化技术,所以每次push前先​工作区git pull​​ ,把远程下拉后解决冲突再push就可以成功了。

4. 当然你也可以在本地建立工作区子系统设计一个自己的分支dev工作区子系统是指_name,平时工作在自己分支下工作,等要push到远程的时候就切换到dev分支下​​git merge dev_name​​ 把dev_name 下的代码合并到dev下就可以了。

git checkout dev(切换到dev分支)
git status
git add .
git commit -m "修改"
git pull origin dev
git push

git checkout –b dev_xfy(创建并切换到dev_xfy分支下)
git checkout dev
git merge dev_xfy(合并dev_xfy到dev)
git pull origin dev
git push

解决冲突:

当两个分支在同一个文件的同一个位置做了修改时,二者合并时会出现冲突,查看冲突,留下正确的修改,重新 ​​git add b.txt git commit -m'冲突已解决'​​。

其实解决云计算冲突也很简单,当冲突出现时,​工作区域​git status​​ 会告诉你哪些文件有冲突(显示红色的文件),在项云计算在生活中的应用目中找到相应的文件

看到类似的

<<<<<<< HEAD
Creating a new branch is quick & simple.
=======
Creating a new branch is quick AND simple.
>>>>>>> dev_xfy

Git用<<<<<&l云计算最简单解释t;<,=======,>>>>>>>标记出不同分支的内容,我们把这些标记删掉,留下github直播平台永久回家正确的代码就可以了。

码云的使用

为什么要使用码云呢,因为码云是中文的,并且它更适合多人协作,一个组织的管理。

同样的使用方法和github很类似,首先得注册一个码云账号。接下来就是配置SSH,和github过程基本一样。

git常用命令总结:

mkdir:         XX (创建一个空目录 XX指目录名)
  pwd: 显示当前目录的路径。
  git init 把当前的目录变成可以管理的git仓库,生成隐藏.git文件。
  git add XX 把xx文件添加到暂存区去。
  git commit –m “XX” 提交文件 –m 后面的是注释。
  git status 查看仓库状态
  git diff XX 查看XX文件修改了那些内容
  git log 查看历史记录
  git reset --hard HEAD^ 或者 git reset --hard HEAD~ 回退到上一个版本
  (如果想回退到100个版本,使用git reset –hard HEAD~100 )
  cat XX 查看XX文件内容
  git reflog 查看历史记录的版本号id
  git checkout -- XX 把XX文件在工作区的修改全部撤销。
  git rm XX 删除XX文件
  git remote add origin https://github.com/StefanPython/demo.git 关联一个远程库
  git push –u(第一次要用-u 以后不需要) origin master 把当前master分支推送到远程库
  git clone https://github.com/tugenhua0707/testgit 从远程库中克隆
  git checkout –b dev 创建dev分支 并切换到dev分支上
  git branch 查看当前所有的分支
  git checkout master 切换回master分支
git branch -m newname 修改当在分支
git branch -m oldname newname 修改其他分支名字
  git merge dev 在当前的分支上合并dev分支
  git branch –d dev 删除dev分支
  git branch name 创建分支
  git stash 把当前的工作隐藏起来 等以后恢复现场后继续工作
  git stash list 查看所有被隐藏的文件列表
  git stash apply 恢复被隐藏的文件,但是内容不删除
  git stash drop 删除文件
  git stash pop 恢复文件的同时 也删除文件
  git remote 查看远程库的信息
  git remote –v 查看远程库的详细信息
  git push origin master Git会把master分支推送到远程库对应的远程分支上
git branch --merged显示已经全部合并到当前分支的分支
git branch --no-merged显示没有合并到当前分支的分支
如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。
查看日志:
git log
有更好的格式 git log --pretty=oneline
查看所有操作日志git reflog
版本回退:
git reset --hard head^ 回到上一个版本
git reset --hard 版本号 想回到的版本号
获得版本号的命令 git reflog
撤销上一次的修改(未提交的并且是在缓存区的):
git checkout -- 文件名 在暂存区修改文件未提交,可用此命令撤销当前未提交的修改,如果有多个文件修改需要撤销 git checkout -- .
git reset --hard head 定位到当前提交状态指针,当一个暂存区文件修改后未提交时等同于git checkout -- 文件名
注意:命令git checkout -- readme.txt 中的 -- 很重要,如果没有 -- 的话,那么命令变成创建分支了。
只要没有commit都可以还原
连接远程仓库:
git remote add origin1 https://github.com/xfy007/gitsecond.git 添加测试用的远端仓库
git push -u origin1 master 每次我们要提交代码到服务器上时,都会使用到git push。git push命令会有两个参数,远端仓库的名字,以及分支的名字
由于远程库是空的,我们第一次推送master分支时,加上了 –u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。经后可直接git push
从远程仓库克隆:
git clone https://github.com/xfy007/gitsecond.git

总结创建与合并分支命令如下:
   查看分支:git branch
   创建分支:git branch name
   切换分支:git checkout name
   创建+切换分支:git checkout –b name
   合并某分支到当前分支:git merge name
   删除分支:git branch –d name

保存工作现场:
当一个分支上的工作还没完成,不能提交时,但是有一个bug需要我再主分支上新建一个分支去解决,所以用到
git stash 来保存工作现场
git status 查看没有未提交的工作
要恢复工作现场 方法一:git stash pop (恢复并删除stash内容)法二:git stash apply(恢复) , git stash drop(一个个删除)
查看SSH公钥的相关命令:
ssh-keygen 重新生成SSH公钥
cd ~/.ssh 切换到.ssh目录下
ll -a 查看.ssh下有哪些文件
cat ~/.ssh/id_rsa.pub 查看ssh key

注:命令无须强记,多使用,就会熟练。

为git命令设置别名:

每次输那么长的命令,感觉云计算产生的背景及意义效率很低,也很麻烦。可以把这些长命令设置别名。

如: git status 设置成 git st

git add虚拟化软件 . 设置成推送引擎是什么意思git a

git commit -m 设置成 git cm

有命令修改别名但是一个一个修改好麻烦,你可以再次找到.gitconf虚拟化技术ig文件,打开,找到[alias]标签,如下

[alias]
st = status
cm = commit -m
ck = checkout
plo = pull origin
ps = push
a =add .

照这个样子修改就行了。

可以从git里打开.gitconfig文件

推送通知在哪里关掉令如下

cd
cat .gitconfig
vim .gitconfig (进入vim编辑器)
在英文输入法下按i,进入输入模式,修改完成后,在英文输入法下点ESC,再点shift+:底部就会出现一个:,输入wq,就保存退出了
再通过cat .gitconfig查看是否修改

git 相关概念的理解:

工作区:

将一个文件夹通过g工作区资源的预配包是什么it init 设置成一个git可以管理的文件夹时,工作区子系统所指的范围是这个文件夹里的内容就是工作区。

暂存区:

暂存区,叫stage 或者 index ,是用来暂时存放工作区中修改的内容;

可以git理解为一个中转站

版本库:

通过git init 会生成一个隐藏的文件.git,这个,git里的东西就是版本库

master:

master是主分支推送制作,当我们git init后云计算产生的背景及意义,并不会立推送服务是干什么用的刻产生master,而是我们添加了一工作区子系统的设计步骤个文件,并git add .,git commit后暂存区,这时我们查看分支情况,便可以看到master分支了。(分支都存放在.git/head/refs目录下)

HEAD:

HEAD是一个引用,引用的是当前的分支,如果当前处虚拟化技术已经成为构建云计算于master分支,那么HEAD就会指向master。

注:虚拟化的主要特征对三个区(工作区,暂存区、版本库)有影响的几个命令

git add   当我们使用git add 指令时,就是将对应修改的文件添加到暂存区中
这时,暂存区中的目录树被更新。

git commit 我们使用git commit指令,便会将暂存区中做出的修改提交到版本库中
这时master指向的分支被更新。

git reset HEAD 当使用git reset HEAD 指令时,版本库的内容会回退到暂存区。

git checkout --file 使用git checkout --file时,是将工作区指定修改的文件被暂存区的内容覆盖(消除所有工作区进行的改动),这个动作很危险。
git checkout . 也是如此,该指令是将所有修改的文件被暂存区的内容覆盖。

git rm --cached 使用git rm --cached file时,直接从暂存区进行文件的删除,不会影响工作区的内容。

git checkout HEAD --file git checkout HEAD --flie 时,会将版本库中的对应的文件内容直接替换工作区和暂存区中的该文件。
这个动作也是危险的,同样git checkout HEAD . 是将所有的内容替换工作区和暂存区的文件。

查看三个分区的区别:

git diff 查看工作区和暂存区的区别
git diff --cached 查看暂存区和版本库之间的区别
git diff HEAD 查看工作区和版本库之间的区别
git status 查看当前的工作状态

学到最后,其实还是云里雾里的,先不急,一个git也就这么多,没必工作区域要去深究,会用就云计算在生活中的应用行。只要用起来,在实github