git 命令


git 基础命令

使用命令实现git对github的管理

命令 作用
git init 对当前目录进行git管理,该目录会成为工作区,并在当前目录下会出现个.git隐藏目录 用法:
1. git init : 当前目录会成为仓库
2. git init directoryName : 指定的目录会成为仓库
git clone 克隆复制远程仓库到当前目录,克隆生成的文件里面会自动创建.git目录,并保存远程仓库信息
1.git clone : repoLink 为要克隆的仓库地址(url), directoryName 为放置克隆仓库的目录,省略的话,默认是当前目录
git config 显示repo的git 配置信息
1.git config --global -–list 列出本机全局配置文件中的信息
git status 查看自上次提交之后是否有对文件再次进行修改, 即当前仓库中有没有尚未保存的文件,保存的文件有没有提交到本地仓库,提交到本地仓库的文件有没有推送到远程服务器
git add 添加文件到暂存区
1.git add [fileName1] [fileName2]… 添加一个或多个文件到暂存区
2.git add [directoryName] 添加目录到暂存区
3.git add . 将当前目录下的所有内容添加到暂存区
git diff 比较文件的不同
1.git diff [fileName] 显示暂存区和工作区的差异,显示尚未缓存的改动(还没有进行git add)
2.git diff --cached [file] 或者 git diff --staged [file] 显示暂存区和上一次提交(commit)的差异,显示已经缓存的改动,(文件已经git add过了)
3.git diff HEAD/head 显示已缓存和尚未缓存的所有改动
4. git diff [first-branch]...[second-branch] 显示两次提交之间的差异:
git commit 将暂存区内容添加到本地仓库中
1.git commit -m [message] 提交暂存区到本地仓库,message可以是一些备注信息
2.git commit [file1] [file2] ... -m [message] 提交暂存区的指定文件到仓库区
3.git commit –a 设置修改文件后不需要执行git add命令,直接提交(跳过暂存区,直接从工作区到仓库区) git commit –am [message]
git reset 用于回退版本,可以指定退回某一次提交的版本。
1. git reset [--soft | --mixed | --hard] [HEAD]
--mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。
--soft 参数用于回退到某个版本
--hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交:
git reset HEAD^ # 回退所有内容到上一个版本
git reset HEAD^ hello.php # 回退 hello.php 文件的版本到上一个版本
git reset 052e # 回退到指定版本
git reset --soft HEAD~3 # 回退上上上一个版本
git reset –soft 不会改变stage区,仅仅将commit回退到了指定的提交
git reset –mixed 不会改变工作区,但是会用指定的commit覆盖stage 区,之前所有暂存的内容都变为未暂存的状态
git reset –hard 使用指定的commit的内容覆盖stage区和工作区
git rm git rm 将文件从暂存区和工作区删除
git rm --cached 将文件从暂存区移除,但保留在工作目录中
git rm –r 递归删除指定目录中的所有内容
git mv git mv [fileName1] [directory/fileName2]
当第二个参数为file的路径时,该命令会将file1 移动到指定位置并改名为fileName2
git mv –f
当指定路径中已经存在名为fileName2的文件时,-f 参数可以强制进行操作
git log 查看提交历史
1. git log 查看历史提交记录
2. git blame 以列表形式查看指定文件的历史修改记录
3. git log --oneline 查看历史记录简洁的版本
4. git log --graph 以拓扑图的形式显示提交的历史记录,可以看出分支、合并的动作
5. git log –reverse 逆向显示log记录 (按照时间顺序,时间早的提交在上面显示)
6.git log --author 查找指定用户提交的日志
git log --author=Name
7. git log --since={}/ --before ={3.weeks.ago}/ --until ={}/ --after={2021-10-01}
查看指定时间范围内的log
8. git log --decorate 可以看到git上的tag记录
git remote 操作远程仓库
1. git remote -v 显示所有的远程仓库 (该命令只能在仓库目录下才能使用)
2. git remote show remoteRepoUrl 显示远程仓库的信息
3. git remote add [shortName] [remoteRepoUrl] 添加远程仓库
4. git remote rm name 删除远程仓库
5. git remote rename old_name new_name 重命名仓库
git remote –v 返回中显示的名称(origin) = git remote add [shortName] [remoteRepoUrl] 中的short name = git remote rm name 的name = git remote rename old_name new_name 中的new name = git push –u name master 中的name,这其实是远程仓库的一个名字,可以通过该名字指向它所表示的远程库,在所有需要指明远程库的地方,都可以用该名字代替,可以利用这个特性向多个远程仓库推送更新
eg:
git remote -v
gitee git@gitee.com:imnoob/runoob-test.git (fetch)
gitee git@gitee.com:imnoob/runoob-test.git (push)
github git@github.com:tianqixin/runoob.git (fetch)
github git@github.com:tianqixin/runoob.git (push)
git push github master
git push gitee master
git fetch 从远程获取代码库
1. git fetch [name] 获取name分支上最新的代码 name 与git remote 中的name相同
2. git merge [name]/[branch] 将更新合并到当前分支eg: origin/master
git pull 从远程获取代码并合并到本地的版本, 等于 git fetch 和git merge
1.git pull name branch
eg:
git pull origin master
git pull origin master:branchName 拉取远程master分支并合并到branchName的分支上
git push 将本地仓库推送到远程仓库并合并
1. git push <远程主机名> <本地分支名>:<远程分支名>
远程主机名与前面所说的name 是一样的,一般来说本地分支名与远程分支名是相同的,所以可以省略冒号及其后内容
eg: git push origin master
2. git push --force 强制推送
3. git push origin –delete master 删除主机的master分支
git branch 1. git branch 列出本地的分支
2. git branch branchName 创建名为branchName的分支
3. git checkout branchName 切换到指定分支branchName
4. git checkout –b branchName 创建新分支branchName并立即切换到该分支下
5. git branch –d branchName 删除分支branchName
git tag 1. git tag 查看所有打过的标签
2. git tag -a tagName 创建一个标签
-a 表示创建一个带注解的标签, 可以记录标签的时间,创建人,添加标签的注解
可以省略-a选项,但创建的是没有上数注解的标签
3. git show tagName 查看指定tag对应的版本所修改的内容
4. git tag -a tagName -m “tagInfo” 创建tagName并指定标签信息为tagInfo
5. git tag -s tagName -m “tagInfo” 创建PGP签名标签