Git 常用命令

Posted Mary哎呀小龙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git 常用命令相关的知识,希望对你有一定的参考价值。

注:命令中的字符都为半角否则命令会报错,命令中自定义的文件名,标签名,备注信息最好都是英文,否则容易出现某些问题

1.配置用户名和邮箱

$ git config --global user.name "xxxx"

$ git confing --global user.email "[email protected] --globle参数表示所有仓库都将使用这个配置

2.创建仓库 (repository)

$ mkdir filename   创建一个空目录

$ cd filename         跳转到filename所在目录

$ pwd                     显示当前目录

$ git init                  把新建目录变成git可以管理的仓库 此时目录下多一个.git的目录

$ ls ($ ls -ah)          查看当前目录下的文件列表  (查看当前目录下的的文件列表,包括隐藏的)

3.添加文件到仓库 需要 add  commit 两步

$ git add filename1 filename2 filename3     把文件从工作区添加到暂存区(stage)

$ git commit -m "xxxx"                                 把暂存区的修改文件提交到分支上   -m后为本次提交的说明 commit可以一次性提交多个文件

4.查看状态和修改内容

$ git status                 查看仓库当前状态,可以知道有文件被修改过

$ git diff filename       查看文件修改内容

$ cat filename            查看文件内容

5.版本回退

$ git log ($ git log --pretty=oneline)      显示从最近到最远的提交日志 如果出现end情况可以按q退出

$ git log -1                                            显示最后一次提交信息

$ git reset --hard HEAD^                      (^为半角状态)  把文件回退到上一个版本 ^的个数为回退版本的个数 (当回退版本比较多时,可采取$ git --hard HEAD~1方式回退,~的数字为回退的版本个数)

$ git reset --hard commit_id                当回退完成以后,若你想回到原先的回退前的某个版本,只要在--hard后加上版本号(版本号可以用命令$ git reflog 查看)

$ git reflog                                           可以查看提交历史,此方法可以查看每次提交的版本号,用于回到未来的某个版本

$ git diff HEAD -- filename                  可以查看工作区和最新版本的区别

6.撤销文件的修改

$ git checkout -- filename                    场景1     撤销工作区文件的的修改 ,--不能省略,否则就是切换分支的命令了

                                                            场景2     当手动误删工作区文件时,因为版本库里还有,可以用此命令将误删文件恢复到最新版

$ git reset HEAD filename                  可以把暂存区文件的修改撤销(unstage),回退到工作区

7.删除已提交文件操作  先用git rm 删除然后 git commit

$ git  rm filename          删除文件

 8.与远程库连接

$ git remote add origin [email protected]:xxxx/xxx.git     

$ git remote rm origin             删除已关联的远程库

$ git push -u origin master    将本地库推送远程库,第一次连接时需要加上-u 参数,此后可省略即$ git push origin master。此外Git使用SSH连接时,第一次连接,Git会输入一个警告,输入yes即可。

9.从远程库克隆

$ git clone  [email protected]:xxxx/xxx.git    

10.创建并合并分支

$ git checkout -b dev      创建并切换分支  相当于 $ git branch dev 和 $ git checkout dev

$ git branch                    查看所有分支   当前分支前会有*号

$ git checkout master    切换回master分支

$ git merge dev             用户合并指定分支dev到当前分支

$ git merge --no-ff -m "xxxx"  dev    加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而不加此参数 则采用fast forward模式(此模式下,删除分支后,会丢掉分支信息)合并就看不出来曾经做过合并,

$ git branch -d dev                          删除dev分支,删除时不能将删除分支作为当前分支

$ git branch -D dev                         强行删除已commit的分支

11.解决冲突

$ git log --graph 查看分支合并图【$ git log -graph --pretty =oneline --abbrev-commit】

12.暂存操作

$ git  stash        把当前工作现场存储起来

$ git stash list    查看存储列表

$ git stash pop  将存储的分支应用于当前分支  git stash apply 同样可恢复但stash内容不删除 ,还需要用git stash drop来删除,可以多次stash,恢复时可以在 pop或 apply后加 [email protected]{x}来指定恢复到哪一个存储分支。 [email protected]{x}可以由git stash list查看

13.多人协作时常用操作

$ git checkout -b dev origin/dev                                                   在本地创建和远程分支对应的分支

¥git branch --set-upstream branch-name origin/branch-name   建立本地分支和远程分支的关联

$ git push  origin branch-name                                                     推送自己的修改

$ git pull                                                                                        当远程分支比你的本地更新,则用上条进行推送会失败,此时需要git pull 试图合并冲突,再进行提交,若git pull 时提示"no trancing information" 说明本地分支和远程分支的连接关系没有创建 用命令 git branch -- set-upstream bransh-name origin/branch-name

$ git remote -v                                                                              查看远程库信息

14.标签操作 如下xxx是自定义tagname

$ git tag xxx                       给当前分支打上标签 git tag -a xxx -m "xxx" 可以指定标签信息,-a指定标签名,-m指定说明文字  git tag -s xxx -m "xxx" 可以用PGP签名标签,通过-s用私钥签名一个标签 

$ git tag                            查看所有标签

$ git show xxx                  可以查看对应标签的说明和内容 

$ git push origin xxx        推送一个本地标签

$ git push origin --tags    可以推送全部未推送的本地标签

$ git tag -d xxx                 删除一个本地标签

$ git push origin :refs/tags/xxx  删除一个远程标签

15 .自定义git

$ git config --global color.ui true

16. 配置别名

$ git config --global alias.xxx  ‘yyy‘ 把yyy别名成xxx  $ git config --global alias.ci commit    $ git config --global alias.unstage ‘reset HEAD‘  所以当你提交时可以写成  $ git ci -m "xxxx"   撤销暂存时  $ git unstage filename  这些设置都在.git /config(无--global)文件或者用户主目录下的.gitconfig(有--global)中,如果不需要可以删除

17.其他操作

$ cd xxx 切换目录

$ clear 清屏

$ cd ..    返回上一个目录

 本文参照 廖雪峰的官方网站git学习总结   https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 

以上是关于Git 常用命令的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段15——git命令操作一个完整流程

GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段

GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段

git 常用命令

源代码管理相关命令(Git常用命令Nuget常用命令CMD常用命令)

git常用命令