Git入门教程
admin
2023-02-19 18:40:09
0

Git 是一个开源的分布式版本控制系统,目前市面上流行的GitHub,GitLab,Gerrit等版本控制系统的核心都是通过Git去管理代码的。下面介绍一些常用的git命令。

1、 git clone remote_git_url local_directory
此命令会将远程git库clone到local_directory下。如果不指定local_directory,会以远程仓库名作为本地存储的文件夹名
2、 git init 和 git init --bare
git init :在当前文件夹,新建一个git库,文件夹下会生成一个.git的文件夹,当前文件夹相当于工作区,可以执行git add, git commit, git branch等操作,如果本地文件夹已经存放了需要进行管理的代码,使用git init是比较合适的,可以继续在此文件夹进行相应的开发工作。
git init –bare:在当前文件夹初始化一个裸库,只用来存放版本信息,不存在工作区,无法执行git add等操作,适合作为初始库,用以分享代码给其他人。
3、 git status
此命令用来总览本地代码的改动,以及当前代码库的状态
Git入门教程
如上图所示,执行git status 之后会将当前工作区的代码与本地代码库中的最新的代码做比较,给出相关改动的状态
Deleted: 表示文件test在工作区中被删除了
Modified:表示文件test2有改动
Untracked files: 表示文件test3还没有被加入到代码库中进行追踪管理

Git在给出工作区的状态后还会同时给出进一步处理所需要用到的相关命令,例如上图中显示的git add/rm , git checkout --

4、 git add
此命令用来将工作区的改动加入到暂存区。比如新增的文件,改动后的文件等,删除的文件等,使用方法是git add filename1 filename2 ,如果想把本地的改动全部加入到暂存区,可以使用git add .
我们对上图中的git库执行git add .之后再执行git status 可以得到将改动加入到暂存区之后的工作区状态
Git入门教程

5、 git rm
此命令用来将工作区的文件直接删除,并提交到暂存区。相当于先执行rm filename 在执行git add filename。
6、 git config
在我们将工作区的改动加到暂存区之后,下一步动作将改动提交到代码库里,在第一次执行提交之前我们需要先配置下我们的提交用户信息。
git config user.name Richard
git config user.email Richard@qq.com

user.name是提交日志里显示的用户名,user.email是提交日志里显示的用户邮件
这个命令只是给当前代码库配置提交信息。如果想给自己账户下所有的git库都配置提交信息,需要使用git config –global user.name 和 git config –global user.email
除了配置提交时的用户信息外,还可以配置编辑提交信息时所使用的的编辑器,命令如下:git config –global core.editor vim
即可使用vim来替代系统默认的编辑器。
7、 git commit
在配置好用户信息后我们可以使用git commit 命令来将已经加入到暂存区的改动提交到代码库里面。如下图所示,输入git commit之后会打开一个编辑器,你可以输入任何想输入的内容。如果提交信息较短,也可以直接使用git commit –m “ delete test, modify..”,直接进行提交
Git入门教程
有时在我们提交之后,可能会发现漏加了一笔改动,然后我们又不希望分成两笔提交,这时在我们执行git add之后,可以执行git commit –amend 来将两次改动合并到一笔提交中。
8、 git push
用来将本地仓库的修改推送到远程主仓库。
一般用法 git push origin master 次命令会将本地仓库master分支最新的提交推送到origin远程仓库对应的master分支
9、 git pull
从远程仓库获取更新并和本地分支合并。
默认情况下git pull 会获取远程仓库的改动然后和本地分支进行git merge. 如果我们希望执行git rebase而不是git merge 可以运行 git pull –rebase
10、 git log
查看提交日志
查看最新的5条日志git log -5
查看自某个commit起的日志 git log commit_hash..HEAD
查看某个文件第3行到第10行的改动:git log –L 3,10:filename
查看某个文件某个函数的改动:git log –L :funcnmae:filename
11、 git show
查看当前HEAD提交的具体改动内容
可以接其他提交的commit id查看对应的改动
12、 git diff
查看当前工作区相对于库中最新的代码所做的改动,只能查看未经暂存的改动
如需查看已暂存的和库中的对比的改动需要使用git diff --cached
13、 git branch
查看当前所在分支信息
Git branch –av 查看全部分支信息及最新的commit id
14、 git checkout
切换分支,或者还原工作区文件
git checkout –b new_branch 新建一个new_branch分支
15、 git format-patch
用于生成patch文件。
基于某次提交生成patch, git format-patch base_commit_id
生成的patch,名字一般为0001-.patch,0002.patch
16、 git am
将git format-patch生成的一系列的patch文件打到git库中
17、 git apply
将某一patch打到git库中,与git am的区别是am会将原始的提交信息也合入,apply只会将改动内容合入到工作区,不会自动入库
18、 git reset
回退到某个commit.
Git reset –hard commit_id, 将工作区和代码库都回退到指定的commit
Git reset –soft commit_id,将代码库回退到指定的commit,并将改动存放到暂存区。
19、 git merge, git rebase
都是用来合并分支。区别在于git merge是直接合并,git rebase是先将本地提交暂存,然后将HEAD更新到最新,在把本地提交合入。

相关内容

热门资讯

终于明白“决战卡五星.到底有挂... 网上科普关于“决战卡五星有没有挂”话题很是火热,小编也是针对决战卡五星作*弊开挂的方法以及开挂对应的...
玩家分享攻略“乐暴延边麻将.可... 家人们!今天小编来为大家解答乐暴延边麻将透视挂怎么安装这个问题咨询软件客服徽4282891的挂在哪里...
【今日要闻】“微乐贵阳麻将.是... 【今日要闻】“微乐贵阳麻将.是不是有挂?”必胜开挂神器您好,微乐贵阳麻将这个游戏其实有挂的,确实是有...
终于明白“悠悠系列.可以开挂吗... 终于明白“悠悠系列.可以开挂吗?”外卦神器下载您好,悠悠系列这个游戏其实有挂的,确实是有挂的,需要了...
【第一财经】“新毛豆炸金花.是... 家人们!今天小编来为大家解答新毛豆炸金花透视挂怎么安装这个问题咨询软件客服徽9752949的挂在哪里...
泰柬同时感谢中国,两边措辞各有... 泰柬官方同时感谢中国,两边的措辞又有什么不同之处?中国外交部发文,又提到了中国调停有什么特殊之处?泰...
最新引进“新玄龙大厅.辅助开挂... 有 亲,根据资深记者爆料新玄龙大厅是可以开挂的,确实有挂(咨询软件无需打...
玩家攻略科普“云南山水麻将.怎... 有 亲,根据资深记者爆料云南山水麻将是可以开挂的,确实有挂(咨询软件无需...
日媒:日本2026年将加速对外... 【环球网报道】据日本共同社报道,日本外务大臣茂木敏充12月23日在记者会上公布了2026年外务省预算...
终于明白“欢乐斗地主.有没有挂... 您好:欢乐斗地主这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款游...