GitLab的学习与使用
一、git相关命令
1. git init
git init 命令用于在目录中创建新的Git仓库
2. git clone
git clone 用于将一个远程的Git仓库拷贝到本地
命令格式如下
git clone [url] # url为远程git仓库地址
3. git add
git add 命令用于将修改的文件添加到暂存区
命令格式如下
git add [file1] [file2] ...
可以加多个参数,每个参数都是一个文件或者文件夹,当参数为文件夹的时候,会添加文件夹下面的子目录及文件
添加当前目录下所有文件,可以使用
git add .
4. git status
git status 命令可以查看在上次提交之后,是否对文件进行过修改
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NZgu03Sw-1630488578701)(README.assets/image-20210528113647939.png)]
加后缀-s可以显示简短的显示
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iDRRLgfj-1630488578702)(README.assets/image-20210528113703754.png)]
5. git diff
git diff 命令可以比较文件的不同,比较的是暂存区文件与工作区文件
git diff --staged [file] # 查看暂存区与上一次提交的差异git diff --cached [file] # 查看暂存区与上一次提交的差异
6. git commit
git ccommit 命令用于将暂存区的文件添加到本地仓库中
git commit -m "修改信息" # 将暂存区所有文件都提交到本地仓库git commit [file1] [file2] ... -m "修改信息" # 将制定文件提交到本地仓库git commit -a # 将工作区所有修改提交到本地仓库
7. git reset
git reset 命令用于回退版本,可以指定退回某一个提交的版本
git reset HEAD^ # 撤销最近的一次提交,工作区内容保持不变git reset --hard HEAD^ # 撤销最近一次的提交,工作区内容变为上一次提交内容git reset --soft HEAD [版本号] # 回退到制定版本,工作区内容保持不变
-
HEAD:代表当前版本
-
HEAD^:代表上一版本
-
HEAD^^:代表上上版本
-
HEAD^^^:代表上上上版本
… 以此类推
同样,也可以使用数字来代替
-
HEAD~0:代表当前版本
-
HEAD~1:代表上一版本
-
HEAD~2:代表上上版本
-
HEAD~3:代表上上上版本
使用git reset命令会将提交撤销,不可恢复
8. git rm
git rm 命令用于删除文件
如果只是简单地从工作目录中手工删除文件,运行 git status 时就会在 Changes not staged for commit 的提示。
git rm <file> # 将文件从暂存区和工作区中删除 如果修改过的话,就需要加上-f,强制删除git rm --cached <file> # 将文件从暂存区中移除
9. git log
git log 命令用于查看历史提交记录
git log # 查看历史提交记录git blame <file> # 以列表形式查看制定文件的历史修改记录
git log 相关参数
-
–oneline:使用简洁方式来显示日志,一行
-
–graph:开启拓扑图选项,更方便的查看项目中分支情况
-
–reverse:时间正序显示
-
–author=<用户名>:显示某一个制定用户的提交
-
–before= {<时间>} --before={<时间>}:查看某一个时间段内的提交
-
–no-merges:隐藏合并提交
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Oww3Ugza-1630488578703)(README.assets/image-20210528160027407.png)]
10 git remote
git remote 命令用于远程仓库操作
git remote -v # 查看远程仓库信息git remote show [remote] # 查看某一个远程仓库的详细信息git remote add [shortname] [url] # 增加一个远程仓库,shortname为本地的版本库git remote rm [name] # 删除远程仓库git remote rename [old_name] [new_name] # 修改远程仓库名
11. git fetch
git fetch 命令用于从远程仓库获取代码
该命令只获取远程分支信息,并不合并
git fetch [alias] # 获取远程仓库信息,alias为远程仓库名称git merge [alias]/[branch] # 将从远程仓库获取到的信息,合并到本地仓库的任意分支
12. git pull
git pull 命令用于从远程仓库获取代码并合并到本地仓库中
git pull 其实就是 git fetch 和 git merge 的简写
git pull <远程主机名> <远程分支名>:<本地分支名> # 将远程仓库的某一个分支下载并合并到本地某一个分支git pull <远程主机名> <分支名> # 当远程分支和本地分支名称一致的时候,可以省略一个git pull # 默认拉起origin主机的master分支
13. git push
git push 命令用于从本地版本库的某一个分支上传到远程并合并
git push <远程主机名> <本地分支名>:<远程分支名> # 将本地的某一个分支推送到远程的某一个分支,并合并git push <远程主机名> <分支名> # 若远程分支和本地分支同名,可以省略一个git push # 默认推送本地的master分支到origin的master分支上面,并合并
相关参数
-
–force:如果本地版本和远程版本有差异,但又要强行推送,可以加上–fore
-
–delete:删除分支
git push origin --delete test # 删除origin主机的test分支
14. git branch
git branch 命令用于在本地创建一个新的分支
git branch [branch_name] # 创建一个新的分支git branch -a # 查看所有分支git branch # 列出本地所有分支git branch -r # 查看远程仓库分支列表git branch -d [branch_name] # 删除指定分支git branch -m [old_name] [new_name] # 给分支重命名
15 git checkout
git checkout 命令用于切换分支,与操作文件
git checkout [branch_name] # 切换到另一个分支git checkout [file_name] # 放弃某一个文件的修改 只能放弃工作区的修改git checkout . # 放弃当前目录下的修改git checkout -b [branch_name] # 如果分支存在,就只切换分支,如果分支不存在,先创建分支, 然后在切换git checkout [commit_id] [file_name] # 从指定提交当中,签出指定文件 会覆盖工作区当中的文件git checkout [branch_name] [file_name] # 从指定分支当中,签出指定文件 会覆盖工作区中的文件# file_name 可以使用通配符 *.css:目录下所有css文件 css/:签出某个目录下的文件
16. git merge
git merge 用于合并分支,如果自动合并失败,需要手动解决
git merge [branch_name] # 将分支合并到当前分支当中
17. git tag
git tag 命令用于给某次提交打上一个标签,如果你达到一个重要的阶段,并希望永远记住那个特别的提交快照,你可以使用 git tag 给它打上标签。
git tag -a [tag] # 给当前提交打标签 然后会打开编辑器,让你出入标签注释git tag -a [tag] [commit_id] # 给指定提交添加标签
打了标签之后,查看日志,就可以查看到对应标签,如图,可以看到f9f01a9打上了v1.0标签
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pAp0pmBe-1630488578704)(README.assets/image-20210528221840820.png)]
18. git show
git show 用于查看某一次提交的详情,
git show [commit_id]
19. git cherry-pick
git cherry-pick 用于将某一个分支上面的一个commit合并到另一个分支,
比如,我在dev分支上面首先做出了一个提交a,又做了第二个提交b,但是我只想将提交b合并到主分支上面,这个时候,我就可以使用git cherry-pick命令来合并
git checkout master # 切换到主分支git cherry-pick 533c020 # 将提交533c020合并到当前分支,(假设提交b的版本号是533c020)
git cherry-pick [版本号] # 将对应版本号的提交,合并到当前分支
20. git restore
git restore命令是撤销的意思,也就是把文件从缓存区撤销,回到未被追踪的状态。
git restore [file_name] # 撤销暂存区中文件的修改
对工作区的文件不起作用