推荐biliblli入门教程(短小精悍)
命令方括号里面的内容是可选的
初始配置
(方便日志记录和团队协作)
git config --global user.name "xuxigua"
git config --global user.email "123123@exa.com"
git config --list
查看配置
利用git建立文件夹并添加书写文件
mkdir learngit
在当前路径新建名为learngit的文件夹
cd learngit
修改路径,此处为进入learngit文件夹;..
为返回上一级;也可以直接设置绝对路径(把文件夹直接拖进git bash中)
pwd
查看当前路径
ls
查看文件夹中的文件
touch readme.txt
在文件夹中建立名为readme.txt的文件
vi readme. txt
进入vim编辑器,可写入内容;输入无效时可长按a;结束编辑按esc并输入:wq
(在最后一行显示)即可退出
echo "this is echo" >> readme.md
利用echo命令把引号内内容写入文件
cat readme.txt
在bash中显示文件内容
rm readme.txt
删除文件
仓库基本命令
git init
初始化仓库,即在当前路径建立.git文件以存储信息(每个路径的仓库只需初始化一次;若有需要,也可以再次初始化);
git status
查看仓库此时的状态;
git add readme.txt
把文件添加到暂存区,每次修改后提交前都需要进行添加;
git add .
把文件夹中全部文件添加到暂存区;
git rm --cached readme.txt
解除对该文件的跟踪
对于不想被添加到暂存区的文件可新建一个.gitignore
文件(注意不用再添加后缀),把文件名或文件夹名写入该文件即可,写文件夹名时需要在前面名字加上斜杆/
;
若在文件夹删除了文件,要同时删除掉版本库中的该文件,可以用git rm readme.txt
,该操作也需要提交才会最终实现;
git commit --m "some description"
把暂存区的文件一次性提交到仓库,引号内为对此次提交文件的一些描述备注;
git log
查看仓库的日志(何人在何时对仓库进行了修改,及提交时的备注)
git log --pretty=oneline
以一行一行的形式显示日志;
git diff readme.md
查看上次提交之后修改的内容
取消项目的版本控制(删除.git文件)进入该项目文件路径后输入find . -name ".git" | xargs rm -Rf
版本回退
git reset --hard HEAD^
HEAD是指针,指向当前的版本,一个^ 表示返回上一个版本,两个^返回两个,100个也可以写成HEAD~100
也可以直接用log里commit的id的前几位数 git reset --hard 1094a
若要从过去找到未来的commit id,可以使用git reflog
查看,里面包括所有提交及HEAD变化的信息
撤销修改
- 若修改还未添加到暂存区:用
git checkout -- readme.txt
回到最近一次git commit
或git add
时的状态 - 若修改已经添加到缓存区,但还未提交:使用
git reset HEAD readme.txt
把暂存区的修改撤销掉,再用git checkout -- readme.txt
- 若修改已经提交(不是提交到远程仓库),可以使用上面的版本回退
- 若误删文件,可以用
git checkout -- readme.txt
从版本库中还原提交的最后一版本文件
分支
在分线修改不会影响主线内容,修改后合并即可
git branch name
建立一个名为name的分支
git checkout name
从master转换到name分支(为避免与上面的撤销修改命令混淆,推荐使用新命令git switch name
)
把上面两条命令合到一起可以写成
git checkout -b name
或git switch -c name
git branch
查看当前分支
注意合并分支前需要返回到要合并到的分支,比如返回主线 git checkout master
合并分支:
git merge name
(不会在日志留下合并信息)git merge --no-ff -m "备注" name
会创建提交,可以备注信息,可以通过git log --graph --pretty=oneline --abbrev-commit
查看分支历史
git branch -d name
删除分支
git branch -D name
分支没有合并时强制删除分支
储存工作现场
git stash
储藏工作现场,不管文件没提交还是没添加,可储藏多个
git stash list
查看储藏的工作现场
git stash apply [stash@{0}]
恢复现场但不删除
git stash drop
删除工作现场
git stash pop
回复并删除工作现场
复制某次提交所作的修改到另一个分支 git cherry-pick <commit id>
与Github的远程仓库对接
需先在Github账户添加电脑的SSH key,详情见廖雪峰教程的远程仓库章节第一篇文章
把本地仓库与远程仓库连接:git remote add origin GitHub上的仓库地址
查看远程库信息 git remote -v
把本地文件的main分支推送上去:
push -u origin main
第一次git push origin main
第一次之后,可以把main改成其他分支
解除与远程库的连接 git remote rm origin
从远程库下克隆仓库到本地(只会克隆主线) git clone GitHub上的仓库地址
克隆分支git checkout -b dev origin/dev
下载仓库的部分文件(找了好久才找到的博客,亲测有效👍)
标签
git tag v1.0
在最近提交的commit上打标签
git tag v0.9 commit-id
在之前的commit打标签
git tag -a v0.9 -m "message" commit-id
打标签时备注信息
git tag
查看标签
git show v1.0
查看具体标签的信息
git tag -d v1.0
删除标签
git push origin V1.0
远程推送一个本地标签
git push origin --tags
远程推送所有本地标签
git push origin :refs/tags/v0.9
删除远程仓库上的一个标签