Git使用教程
说明:
本文中的表述存在主观理解,准确说法请移步官方文档
本文的内容仅为作者常用的功能介绍且在各IDE中会有图形化操作方法作为替代,例如VS,JetBrains系列的Version Control功能
安装与配置
安装
sudo pacman -S git
配置
git config --global user.name "用户名"
git config --global user.email "邮箱地址"
git config --global core.editor vim # 编辑器可自定义,提交时可能会用到,eg:emacs,vim,nano……
以下命令可以查看git的使用方法
[root@localhost]git
[root@localhost]man git
基础功能
创建git仓库
git init
显示如下
hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: hint: hint: git config --global init.defaultBranch <name> hint: hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m <name> Initialized empty Git repository in /home/<dir_name>/.git/
查看仓库状态
git status
显示如下
On branch master No commits yet nothing to commit (create/copy files and use "git add" to track)
追踪文件
对于没有追踪过的文件显示如下
On branch master No commits yet Untracked files: (use "git add <file>..." to include in what will be committed) test nothing added to commit but untracked files present (use "git add" to track)
git add <file> # 支持正则表达式,下文文件名采用test
追踪后,状态如下
On branch master No commits yet Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: test
假设此时对文件进行了修改,状态变为
On branch master No commits yet Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: test Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: test
信息第3、6行的意思是之前已经添加了
test
文件,但是修改并没有被添加。
想要查看对文件做的修改情况,可以使用git diff
查看
git diff
提交文件
git add test # 提交之前做过的更改
git commit -m "备注" # 如果提交时没有添加备注信息,直接`git commit`,终端模拟器会打开默认编辑器,用户也可以在这个文本文件中添加备注信息
提交显示如下
[master (root-commit) 1dd096f] version1.1 1 file changed, 1 insertion(+) create mode 100644 test
此时状态为
On branch master nothing to commit, working tree clean
到此,创建的文件已经提交到git仓库。
版本管理
修改日志
git log # 查看修改记录
git blame <filename> # 查看指定文件修改目录
版本回退
$ git reset HEAD^ # 将所有文件回退到上一个版本
$ git reset HEAD^ test # 将test回退到上一个版本
$ git reset <version> # 回退到指定版本
HEAD的右上角^个数表示版本
HEAD:当前版本,HEAD:上一个版本,HEAD^:上上个版本……
私有文件
用户可能会添加一些文件,这些文件只想自己看到,并不想提交到git仓库,只需要在.gitignore
文件中添加该文件文件名即可
vim .gitignore
<filename> # 后文采用ignore_file
:wq
或者
echo "<filename>" >> .gitignore
此时状态如下
On branch master Untracked files: (use "git add <file>..." to include in what will be committed) .gitignore nothing added to commit but untracked files present (use "git add" to track)
可以发现,为被追踪的文件中不显示ignore_file
另外要说明,之前git已经追踪的文件即使被添加到.gitignore
也不会起作用,可以手动让git不在追踪该文件
git rm --cached <filename>
显示如下
On branch master Changes to be committed: (use "git restore --staged <file>..." to unstage) deleted: <filename>
这里显示的
deleted
并不是删除了这个文件,只是再git的管理系统中删除
Git分支
在前面的提示信息中都会有On branch master
,如果不添加分支,就直会有这一条工作线路。假设用户相对某一部分文件进行大幅度的修改,可以创建一个分支,再这个分支中进行。
创建分支
git branch <branch name> # 后文采用sub
git branch sub # 删除分支
切换分支
git checkout sub # 某些shell主题会显示当前分支名
在分支中进行一番操作后,切换到主分支git checkout master
,这时的资源管理器器中可能不会显示sub
分支中的内容,此时需要将分支中的内容合并到主分支master
中
git merge sub
到此管理本地文件结束,如果要多人合作完成一个项目,可以push
到GitHub上并邀请合作者
Git与GitHub
git remote add origin <GitHub仓库地址>
git push --set-upstream origin master # 忽略.gitignore中添加的文件
git clone <GitHub仓库地址>
git pull # 下载最新的仓库
标签:文件,教程,git,hint,use,Git,master,branch,使用
From: https://www.cnblogs.com/euler0525/p/16601647.html