Git在初次使用之前,应该进行一些设置。主要是设置user.name和user.email
git config --global user.name "xxx" #"xxx"是你的名字
git config --global user.email "email address" #"email address" 是你的电子邮件地址
新建一个目录,作为你的项目目录,或者是在已有的项目目录下,输入下面的命令,来初始化一个仓库。
git init
使用下面的命令将你项目的文件纳入仓库中。
git add <file>
当你把项目文件添加进来之后,就可以将文件提交的仓库了。使用下面的命令即可。
git commit -m "xxx" #"xxx"是本次提交的说明
下面的命令进行工作区状态查询,查看文件是否被git所跟踪,是否提交到暂存区。
git status
想要对比文件的差异,可以使用下面的命令,该命令后面还可以指定和那个版本做比较。默认是将当前工作区和当前版本进行比较。
git diff
查看Git提交记录,可以使用下面的命令来查看,它显示当前版本之前的所有提交历史。
git log
如果想要查看所有的历史记录,使用下面的命令。它给出所有版本的提交记录,包括当前版本之前和之后的所有历史记录。
git reflog
版本回退使用下面的命令。HEAD是git中的指向当前版本的指针,HEAD^表示上一个版本,HEAD^^表示上上一个版本,30版本之前HEAD~30。
git reset --hard HEAD^
转到任意版本,可以使用下面的命令。通常该命令需要和git reflog命令配合使用。
git reset --hard c2ffbb #c2ffbb是git reflog查询出来的版本索引
如果你只是想撤销对当前工作区所做的修改,那么你可以使用下面的命令来进行撤销。
git restore <file>
如果你的文件已经使用git add提交到了暂存区,那么撤销暂存区的修改需要使用下面的命令。撤销完暂存区之后,记得也要撤销一下工作区。
git restore --staged LICENSE
那么,如果你的文件已经提交到仓库(git commit),那么这时候撤销操作实际就是版本回退。因为每一次git commit都会产生一个版本。
Git也提供了删除文件的操作,可以让你删除不想要的文件。使用下面的命令即可。删除之后,文件也会从当前工作区消失。但是如果之前某个版本有过这个文件,那么如果你后悔了,还可以从该版本拿该文件。
git rm <file>
增加文件,其实是让git来跟踪文件。你只需要将你在项目目录下新增的文件使用git add来进行跟踪即可。这样就可将文件纳入git仓库之中。
从远程仓库克隆非常简单,使用下面的命令即可。
git clone <url> [projectname]
url是仓库的地址,后面的projectname是项目的名字,可以没有。当你不指定名字的时候,就会使用远程仓库上原本的名字。
另一种情况就是你准备把本地的仓库推送到远程,那么首先,你必须在远程新建一个仓库。然后它就会给你一个地址(url),之后使用下面的命令来推送仓库到远程。
git remote add <name> <url>
一般而言,这个name都会是origin,这是git默认的叫法,url就是远程仓库给你的地址。因此,该命令更加一般的形式如下。
git remote add origin <url>
创建分支,在git上创建一个分支非常简单,使用下面的命令即可。
git branch <name>
查看分支命令如下。
git branch
切换分支命令可以是下面的两条,它们实现的功能是一样的。只不过比较老的git版本不支持switch命令。使用switch其实比较好,这样没有歧义。
git checkout <name>
git switch <name> #比较新的git版本支持git switch
git也提供了在创建+切换一起完成的指令,如下。
git checkout -b <name>
git switch -c <name> #新版本git
删除本地分支命令如下所示。前提是你需要离开这个将被删除的分支,然后删除它。
git branch -d <name>
合并某分支到当前分支,使用的命令如下。当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。
git merge <name>
查看合并分支图的命令如下。 --oneline是控制版本信息在一行内显示。
git log --graph --oneline
Git提供了一个stash
功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作。命令如下。
git stash
你可以同时拥有多个现场,但是不建议这么做。查看现场的命令如下。
git stash list
恢复现场可以一步进行,也可以分为两步,分别如下所示。
#两步
git stash apply #恢复现场
git stash drop #删除现场
#一步
git stash pop #恢复现场并删除保存
查看远程库信息命令如下。
git remote -v
推送分支,命令如下。name就是你需要推送的分支名称。
git push origin <name>
抓取分支,命令如下。在你抓取某分支之前,应当在本地创建该分支并切换到该分支。
git pull origin <name>
删除远程分支和删除本地分支不太一样,它的指令如下。注意它不会删除本地的同名分支,因此你还需要使用删除本地分支。
git push origin --delete <name>
在实际开发中,我们应该按照⼏个基本原则进⾏分⽀管理: ⾸先, master 分⽀应该是⾮常稳定的,也就是仅⽤来发布新版本,平时不能在上⾯⼲活; 那在哪⼲活呢?⼲活都在 dev 分⽀上,也就是说, dev 分⽀是不稳定的,到某个时候,⽐如1.0版本发布时,再 把 dev 分⽀合并到 master 上,在 master 分⽀发布1.0版本; 你和你的⼩伙伴们每个⼈都在 自己的分⽀上⼲活,每个⼈都有⾃⼰的分⽀,干完活以后,时不时地把自己的分支往 dev 分⽀上合并就可以了。
修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;当手头工作没有完成时,先把工作现场git stash
一下,然后去修复bug,修复后,再git stash pop
,回到工作现场;在master分支上修复的bug,想要合并到当前dev分支,可以用git cherry-pick <commit>
命令,把bug提交的修改“复制”到当前分支,避免重复劳动。
开发一个新feature,最好新建一个分支;如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>
强行删除。
Git有一个叫做rebase的操作,rebase操作可以把本地未push的分叉提交历史整理成直线。
git rebase
查看标签命令如下。
git tag
创建标签命令如下,对当前版本打标签。name是tag的名字。
git tag <name>
对历史提交打标签。name是tag的名字,index是历史提交的索引。
git tag <name> <index>
查看标签信息。name是标签名称。
git show <name>
创建带有说明的标签,用-a
指定标签名,-m
指定说明文字。
git tag -a <name> -m "xxx" [index]
删除本地标签。
git tag -d <name>
删除远程标签。在删除远程便签之前,应该先删除本地标签。
git push origin :refs/tags/<name>
推送标签到远程。
git push origin <name> #推送一个标签
git push origin --tags #推送所有标签
在Git工作区的根目录下创建一个特殊的.gitignore
文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。GitHub已经为我们准备了各种配置文件,https://github.com/github/gitignore
当然了Gitee也有。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有