文章目录
快速上手
git global setup
git config --global user.name "lishanlu"
git config --global user.email "lishanlu136@163.com"
设置让VSCode记住git账号和密码
git config --global credential.helper store #重启VSCode生效
每个工程单独设置git账号和密码
首先进入工程的root目录下
git config user.name "lishanlu"
git config user.email "lishanlu136@163.com"
利用远程仓库在本地创建一个git工程
git clone git@remote repository
cd repository dir
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
将本地工程添加到远程仓库
cd project_folder
git init
git add .
git commit -m "Initial commit"
git remote add origin git@remote_project.git //设置远程项目地址
git remote set-url origin https://xxx/remote_project.git //修改远程项目地址
git remote -v //设置完远程项目地址之后可以通过命令查看当前项目的远程地址是否设置成功
git push -u origin master
重要知识点
git属于分布式版本控制系统,它有三种状态,你的文件可能处于其中之一:已提交(committed)、已修改(modified)和已暂存(staged)。
- 已提交表示数据已经安全的保存在本地数据库中。
- 已修改表示修改了文件,但还没保存到数据库中。
- 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
由此引入 Git 项目的三个工作区域的概念:Git 仓库、工作目录以及暂存区域。
基本的 Git 工作流程
- 在工作目录中修改文件。
- 暂存文件,将文件的快照放入暂存区域。
- 提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录。
git常用命令
git config -list //列出所有git当时能找到的配置
git config < key > //检查 git 的某一项配置,如:git config user.name
git status //检测当前文件的状态
git add < filename > //跟踪一个文件并放入暂存区
git add -A //提交所有变化 (git add -All的缩写)
git add -u //提交被修改(modified)和被删除(deleted)文件,不包括新添加的文件,它是命令git add -update的缩写形式
git add . //提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)的文件
.gitignore 的文件 //列出要忽略的文件模式,比如日志文件,或者编译过程中创建的临时文件等
git diff //查看已暂存和未暂存的修改(可选)
git commit –m “…” //提交更新
git rm “filename” //移除文件(暂存区也会删除),如果只是从工作目录手动删除,会提示暂存区没有删除
git mv file_from file_to //移动文件,也可以起到文件重命名的作用
git log //查看提交历史
git commit –amend //当我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了,这时可运行该命令尝试重新提交
git remote //会列出你指定的每一个远程服务器的简写,指定选项 -v,会显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL
git remote add < shortname > < url > //添加一个新的远程 Git 仓库,同时指定一个你可以轻松引用的简写shortname
git remote set-url < shortname > < url > //修改远程仓库地址
git fetch [remote-name] //从远程仓库中抓取与拉取,这个命令会访问远程仓库,从中拉取所有你还没有的数据。**如果你使用 clone 命令克隆了一个仓库,命令会自动将其添加为远程仓库并默认以 “origin” 为简写。所以,git fetch origin 会抓取克隆(或上一次抓取)后新推送的所有工作。该命令会将数据拉取到你的本地仓库,但它并不会自动合并或修改你当前的工作。当准备好时你必须手动将其合并入你的工作。**
git pull [remote-name] //通常会从最初克隆的服务器上**抓取数据并自动尝试合并到当前所在的分支**。
git push [remote-name] [branch-name] //推送到远程仓库(使用git clone命令获得仓库时通常会自动帮你设置好那两个名字)。**只有当你有所克隆服务器的写入权限,并且之前没有人推送过时,这条命令才能生效。**
git tag //列出已有标签。以字母顺序列出标签;但是它们出现的顺序并不重要
git tag v1.4 //轻量标签,指定版本为1.4
git tag -a v1.4 -m 'my version 1.4' //附注标签,-m 选项指定了一条将会存储在标签中的信息。