笔记_git_代码工具

git_代码管理工具


git 的使用

是一种代码协同管理工具

  1. 防止代码丢失,做代码备份
  2. 做代码的版本管理,创建多个版本或者节点,在多版本间切换
  3. 可以将代码在多人之间简单的传输共享
  4. 可以方便多人协调开发,开辟各自分支和分支管理

什么是git?

git是一个开源的分布式版本控制系统,可以用于高效的管理大小项目。

分布式:
每个节点关系平等,都保存完整代码,节点之间相互推送或者下载代码,工作方式多样。
集中中:
有明确的中央服务器统一管理代码,每个节点将代码上传中央服务器,或者从中央服务器下载。逻辑简单。

git的特点:

  • git可以管理各种文件,特别是代码项目,'躲’在*nix系统中使用
  • 是开源的系统,是唯一可以操作github的管理工具
  • git是分布式管理,不同于集中式,这也是和svn最大的差别
  • git可以脱拖操作,传输速度更快
  • git的安全性很强,有全球唯一的commit版本号
  • git的分支管理很强大,可以方便多人协同工作。

git 基本配置

git config

配置级别:

1.系统中所有的用户均使用的配置
命令:git config --system
配置文件的地址:/etc/gitconfig

例:配置git用户
sudo git config --system user.name Tedu

2.当前用户的所有项目均使用的配置
命令:git config --global
配置文件地址:~/.gitconfig

例:配置用户邮箱
git config --global user.email tarena@tedu.cn

3.只在当前项目中使用的配置
命令:git config (此命令要在git项目文件夹中执行)
配置文件地址:project/.git/config

例:配置编译器
git config core.editor vscode

4.查看当前配置
命令:git config --list


git 基本概念

工作区:通过自己的主机操作的git目录。

暂存区:用来记录你工作区的行为,作为暂时保存。

本地仓库:本地用来备份同步工作区内容的区域。

远程仓库:其他主机的git仓库。


git的基本操作命令

初始化仓库
命令:git init
说明:初始化仓库后产生,git目录为git的管理目录,初始化仓库的目录内容即可使用git进行管理。

查看工作分支状态
命令:git status
说明:默认工作分支为master,可以通过创建新的分支切换。

文件提交到暂存区
命令:git add [file]
说明:可以一次提交多个内容;
   提交的内容可以是文件,也可以是目录;
   如果想将当前目录下所有的内容都提交也可以使用*表示。

删除暂存区的某文件(文件夹目录)提交记录
命令:git rm --cached [file] [-r,若是文件夹目录,要加-r]

将暂存区记录的修改内容同步到本地仓库
命令:git commit --m “some message(自定义附加信息)”
说明:-m 为添加的附加信息;
   当工作区和本地仓库内容一致时,使用git status,会提示工作区干净。

查看提交日志
命令:git log
 或:git log --pretty=oneline  (一行简洁显示)


工作区的操作:

查看工作区文件和本地仓库的差异
命令:git diff [file(文件名)]

放弃工作区的修改
命令:git checkout – [file(文件名)]

恢复本地仓库文件到工作区
命令:git checkout [file(文件名)]
eg.:

tarena@tedu:~/project$ rm Readme   #删除Readme
tarena@tedu:~/project$ ls
111.png  exercise.py  re_1.md  re_1.txt
tarena@tedu:~/project$ git checkout Readme  #恢复Readme 
tarena@tedu:~/project$ ls
111.png  exercise.py  re_1.md  re_1.txt  Readme

文件的 移动 和 删除

删除工作区文件,并提交到暂存区记录
命令:gir rm [file]

移动工作区文件,并提交到暂存区记录
命令:git mv [file文件] [dir目录]


版本控制命令

回到上一个版本
命令:git reset --hard HEAD^
说明:HEAD后面写几个^,就表示回滚到之前的几个版本
eg.:

tarena@tedu:~/project$ git log --pretty=oneline
c194c613bac44e4006ab38b08ef8fe2f4c6a398d 移动了一个文件到test嘿嘿
9bcfbabbfdd5fe16b3da56d254bbac0c023bd79e 真删了
524f3566466736b76ef1a5c836fd133c4d9a72da add files

tarena@tedu:~/project$ git reset --hard HEAD^
HEAD 现在位于 9bcfbab 真删了

tarena@tedu:~/project$ git log --pretty=oneline
9bcfbabbfdd5fe16b3da56d254bbac0c023bd79e 真删了
524f3566466736b76ef1a5c836fd133c4d9a72da add files

通过commit_id回到指定的版本
命令:git reset --hard commit_id

查看操作记录日志
命令:git reflog
说明:获取到操作记录后可以根据commit_id去往较新的版本
eg.:

tarena@tedu:~/project$ git reflog
524f356 HEAD@{0}: reset: moving to 524f356
9bcfbab HEAD@{1}: reset: moving to HEAD^
c194c61 HEAD@{2}: commit: 移动了一个文件到test嘿嘿
9bcfbab HEAD@{3}: commit: 真删了
524f356 HEAD@{4}: commit (initial): add files

标签管理:

什么是标签?
即在当前工作位置添加快照,保存项目的版本信息,一般用于项目版本的迭代。

如何创建标签?
命令:git tag v1.0
说明:默认会在最新的commit_id处打标签

查看标签:
命令:git tag     (查看所有标签)
   git show v2.0  (查看某个标签的具体信息)

在某个指定的commit_id处打标签
命令:git tag v0.8 [commit_id]

回到某个标签的版本
命令:git reset --hard v0.8

删除某个标签
命令:git tag -d v2.0


保存临时工作区

创建临时工作区
命令:git stash
说明:将工作区修改内容暂时封存,恢复到最近一个“干净”状态(即与本地仓库一致)。

查看保存的工作区
命令:git stash list

应用某个工作区
命令:git stash apply stash@{1}
说明:最新的工作区总是为stash{0},老的工作区会向下排列

应用上一个工作区,并删除之
命令:git stash pop

删除工作区
命令:git stash drop stash@{2}  #删除某个工作区
   git stash clear       #删除所有工作区


分支管理

什么是分支?
分支即每个人在获取原有分支(master)代码的基础上,作为自己的工作环境,单独开发,不会影响其他分支操作。
开发完成后再统一合并到主线分支。

好处:安全,不影响其他人的工作,自己控制进度。
问题:冲突。

查看当前分支
命令:git branch
说明:前面带*的表示当前正在工作所在的分支

创建分支
命令:git branch [branch]
说明:创建分支之前尽量保存

切换工作分支
命令:git checkout [branch]

创建并切换到新的分支
命令:git checkout -b [branch_name]

合并分支
命令:git merge [branch]

删除分支
命令:git branch -d [branch]

强制删除没有合并的分支
命令:git branch -D [branch]


远程仓库:

是指在远程主机上的仓库。
git是分布式的,实际上每一台主机上的git结构基本相同,只是把其他主机上的git仓库叫做远程仓库而已。

创建共享仓库:

1.创建目录
命令:mkdir gitrepo

2.设置仓库文件夹的属主
命令:chown tarena:tarena gitrepo

3.创建共享仓库
命令:cd gitrepo
   git init --bare aid08.git(以.git结尾的)

4.设置git项目文件夹的属主
命令:chown -R tarena:tarena aid08.git


添加远程仓库
命令:git remote add origin tarena@127.0.0.1:/home/tarena/gitrepo/aid08.git
说明:tarena后面的为远程仓库的地址

删除远程主机
命令:git remote rm origin

将本地分支推送到远程
命令:git push -u origin master
说明:在第一次向远程仓库推送时需要加 -u 选项,以后就不需要了。

从远程主机获取项目
命令:git clone tarena@127.0.0.1:/home/tarena/gitrepo/aid08.git

将代码同步到远程主机
命令:git push
说明:会自动推送给远程仓库的对应分支

将远程仓库内容拉取到本地
命令:git pull
 或 git fetch (如果有新的分支拉取到本地不会和本地分支合并 )


github网站

github是一个开源项目社区网站。拥有全球最多的开源项目。开发者可以注册这个网站建立自己的github仓库。
然后就可以在本地通过git像操作远程仓库一样操作github仓库。
git是github唯一指定的代码管理工具。
[github网址]: (https://github.com/) 。

创建新的github仓库
右上角 + 下拉菜单 --》 new repository --》 填写参考名和基本描述 ,根据情况选择是否添加readme等内容,选择共有还是私有 --》 点击创建

操作github仓库
1.git remote 连接远程github仓库,如果需要输入密码输入github密码即可
2.使用git push等操作远程仓库的方法操作即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值