Git基础入门

95 阅读2分钟

Git基础入门


1.简介

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

2.工作流程

git工作流程.png

如上图所示,工作区即为本地项目目录所在区域;stage(index)暂存区一般存放在.git目录下,暂存区也叫作索引;.git目录是工作区下的隐藏文件夹,是Git的版本库,即为local storage本地仓库;remote storage一般为gitlab、gitbub、gitee等搭建的远端仓库。

3.基础操作

1)配置

  • Git的设置使用git config命令
#显示当前git的配置信息
$ git config --list
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
http.sslcainfo=e:/Git/mingw64/ssl/certs/ca-bundle.crt
core.autocrlf=true
core.fscache=true
core.symlinks=false
pull.rebase=false
credential.helper=manager-core
credential.https://dev.azure.com.usehttppath=true
init.defaultbranch=master
user.name=*******
user.email=**********
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
  • 编辑Git配置文件
#针对当前仓库
git config -e
​
#全局设置
git config -e --global
  • 设置提交代码时的用户信息
#一般直接全局设置,去掉--global仅针对当前仓库有效
git config --global user.name "hahaha"
git config --global user.email hahaha@gmail.com

2)创建仓库

创建仓库有两种方式,git clonegit init

#将当前目录设置为Git仓库,执行完会生成.git隐藏文件夹
git init
​
#后面接目录路径,将指定目录设置为git仓库
git init [path]
​
#从远程仓库克隆到本地,repo_path为远程仓库链接
git clone <repo_path>
​
#克隆到指定目录下
git clone <repo_path> <path>

3)提交与修改

  • 添加文件到暂存区git add
#添加一个或多个文件
git add [file1] [file2] [file3]...
​
#添加目录
git add [dir]#添加当前目录下所有文件(add后面加点)
git add .
  • 提交暂存区文件到本地仓库git commit
#全部提交,message设置提交的记录信息
git commit -m [message]#提交指定文件
git commit [file1] [file2] [file3]... -m [message]#设置修改文件后不用执行git add,直接提交
git commit -a

4)远程操作

  • 远程仓库操作git remote
#显示所有远程仓库,origin为远程地址别名
git remote -v
​
origin  git@github.com:conceiter/git_study.git (fetch)
origin  git@github.com:conceiter/git_study.git (push)
​
#显示某个远程仓库的信息
git remote show [remote]
​
#在已有本地仓库情况下,需要添加远程仓库
git remote add [lcoal_name] [url]
​
#例
git remote add origin  git@github.com:conceiter/git_study.git
​
#删除远程仓库
git remote rm [name]
​
#修改仓库名
git remote rename old_name new_name
  • 下载远程代码并合并git pull
#git pull就是git fetch和git merge的简写
#拉取远程分支到本地分支,如果是与当前分支合并,本地分支可以省略
git pull <远程主机名> <远程分支><本地分支>
  • 上传远程代码并合并git push
#如果是本地分支与远程分支名相同,远程分支可以省略
git push <远程主机名> <本地分支>:<远程分支>
​
#例
git push origin master
​
#强制推送
git push --force origin master
​
#删除远程分支
git push origin --delete [分支名]