分享

git实操常用命令汇总-小马哥

 小马哥技术屋 2020-12-08

github在备案地执行git commit 后需要运行以下代码:

1、创建README.md

2、git add README.md

3、git commit -m '第一次提交'

4、git remote add origin https://github.com/mzq412304/caiAPP.git   指本地仓库和远程仓库建立连接

5、git push -u origin master 

码云提交代码步骤:

  git pull命令的作用是:取回远程主机某个分支的更新,再与本地的指定分支合并。

1、初始化 git init 

2、 git remote add origin  https:///mzq412304/cae_app.git

3、拉取线上代码: git pull origin master

  git pull <远程主机名> <远程分支名>:<本地分支名>

  例如执行下面语句:

  git pull origin master:brantest

  将远程主机origin的master分支拉取过来,与本地的brantest分支合并。

  后面的冒号可以省略:

  git pull origin master

  表示将远程origin主机的master分支拉取过来和本地的当前分支进行合并。

  上面的pull操作用fetch表示为:

  git fetch origin master:brantest

  git merge brantest

  相比起来git fetch更安全一些,因为在merge前,我们可以查看更新情况,然后再决定是否合并。

4、提交代码

  git add. 提交所有代码

5、git commit -m '说明'

6、第一次提交,:git push -u origin master  第二次提交就按照上面的写法即可

  不在需要加  -u: git push origin master

说明:

   git push命令用于将本地分支的更新,推送到远程主机。它的格式与git pull命令相仿

   $ git push <远程主机名> <本地分支名>:<远程分支名>

   注意:这里的冒号:前后是必须没有空格的。

   注意:

      分支推送顺序的写法是<来源地>:<目的地>,所以git pull是<远程分支>:<本地分支>,而git push是<本地分支>:<远程分支>。

      如果省略远程分支名,则表示将本地分支推送与之存在"追踪关系"的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。

   $ git push origin master  上面命令表示,将本地的master分支推送到origin主机的master分支。如果后者不存在,则会被新建。

   如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支。

   $ git push origin :master  #等同于  $ git push origin --delete master

   上面命令表示删除origin主机的master分支

    如果当前分支与远程分支之间存在追踪关系,则本地分支和远程分支都可以省略。

    $ git push origin

    上面命令表示,将当前分支推送到origin主机的对应分支。

    如果当前分支只有一个追踪分支,那么主机名都可以省略。

    $ git push

    如果当前分支与多个主机存在追踪关系,则可以使用-u选项指定一个默认主机,这样后面就可以不加任何参数使用git push

    $ git push -u origin master

    上面命令将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了。

二、常用命令

1、初始化:git init  创建一个git仓库,创建之后就会在当前目录生成一个.git的文件

2、添加文件:git add filename  把文件添加到缓冲区

3、添加所有文件到缓冲区  git add .或者 git add --all(从目前掌握的水平看,和后面加“.”的区别在于,加all可以添加被手动删除的文件,而加“.”不行):

4、删除文件  git rm filename    

提交:提交缓冲区的所有修改到仓库(注意:如果修改了文件但是没有add到缓冲区,也是不会被提交的)

5、git commit -m "提交的说明"

6、commit可以一次提交缓冲区的所有文件

查看git库的状态,未提交的文件,分为两种,add过已经在缓冲区的,未add过的

7、查看状态 git status 

8、查看日志 git log  

9、版本回退:git reset  可以将当前仓库回退到历史的某个版本

10、git reset --hard HEAD^  第一种用法:回退到上一个版本(HEAD代表当前版本,有一个^代表上一个版本,以此类推)

   git reset --hard d7b5   第二种用法:回退到指定版本(其中d7b5是想回退的指定版本号的前几位)

11、查看命令历史:git reflog  查看仓库的操作历史

12、查看提交版本 git log 

   1) git config --global user.name  'mzq304'  // 查看git用户名

   2) git config --global user.email '8278@qq.com'  // 查看git邮箱

   3) git log --oneline    // 查看所有提交的版本号

13、git reflog     //  查看每次操作对应的commitId账号

   git reset --hard commitId       // 本地端口回滚指定的版本

   git push -f    // 强制推送到远程分支

14、回滚版本

   1) git reset --hard HEAD^,回滚到上个版本

   2) git reset --hard HEAD^~2,回滚到前两个版本

   3) git reset --hard xxx(版本号或版本号前几位),回滚到指定版本号,如果是版本号前几位,git会自动寻找匹配的版本号

   4) git reset --hard xxx(版本号或版本号前几位) filename,回滚某个文件到指定版本号(需要进入该文件所在目录)

   5) git reset --hard 希哈值

三、git分支管理

   1、查看分支的情况,git branch  前面带*号的就是当前分支

   2、创建分支  git branch 分支名

   3、切换当前分支到指定分支: git checkout 分支名

   4、创建分支并切换到创建的分支 git checkout  -b 分支名

   5、合并某分支的内容到当前分支  git merge 分支名

   6、删除分支  git branch -d 分支名

注意:

    如果两个分支同时进行了同一个文件的修改和提交,在merge时就会产生冲突,首先要手动打开文件解决冲突,再提交,就相当于进行了merge

    两个分支分别进行了commit,最新的一次提交将两个分支内容进行了合并

   7、查看分支合并图   git log --graph

   8、新建标签 git tag 标签名 版本号 默认为最新版本,后面加上版本号参数则可指定版本增加标签

   9、查看所有标签  git tag

   10、查看标签的详细信息  git show 标签名

   11、将tag提交到远端仓库 推送所有tag: git push origin --tags

   12、推送某个tag:git push origin v1.0 

   13、将本地仓库内容推送到远端仓库 git push -u origin master  (-u 表示第一次推送master分支的所有内容,后面再推送就不需要-u了),

跟commit的区别在于一个是提交到本地仓库,一个是提交到远程仓库

   14、从远端库更新内容到本地(相当于svn的update) git pull

   注意:tips:如果push的时候,本地和文件和远端文件有冲突,就要先pull、然后手动解决冲突,才能继续push

   15、git记住用户名密码

    push的时候默认每次都需输入GitHub的用户名和密码,在git仓库根目录下.git文件夹的config文件末尾增加如下内容,

    即可记住用户名密码,无需每次推送都输入了  [credential]   helper = store

注意:

   提交到git时,忽略部分IDE产生的文件,在根目录下创建.gitignore文件, 注意:新加.gitignore只能忽略那些原来没有被提交过的文件,如果某些文件已经被纳入了版本管理中,

   则修改.gitignore是无效的。解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:

   git rm -r --cached .

   git add .

   git commit -m 'update .gitignore'

  四、

    1、git clone 之后才想要提交代码怎么办?

       主要的问题来自于git remote的地址问题,那么我们要做的首先应该是将本地与当前远程remote切断联系。然后需要添加一个新的远程仓库,这个新的仓库从何而来呢?就需要我们对原仓库进行fork了,之后就是使用刚刚文章中提到的添加远程的方法。

       第一步: 与当前远程remote切断。 git remote remove origin  取消本地目录下关联的远程库

       第二步: 对原仓库进行fork,添加远程  git remote add origin git@github.com:mzq412304/shequn.git   https:///mzq304/shequn.git

       第三步: git push origin master

       后面按照之前的方法上传提交代码即可。

       说明:

          在clone代码库到本地的时候,采用SSH加密的方式的话,在git push的时候是无须输入远程仓库的github账户密码的,SSH的写法就像下面这样:

          git@github.com:git_username/repository_name.git 到了git push的时候,自然还是需要我们老老实实输入账号密码的

    2、使用Git下载指定分支命令为:git clone -b 分支名仓库地址

       如: 使用Git下载v.2.8.1分支代码,使用命令:git clone -b v2.8.1 https://git.oschina.net/oschina/android-app.git

       解释命令:-b表示要从分支下载,v2.8.1就是具体的某个分支的名称,https://git.oschina.net/oschina/android-app.git这是app源码的git仓库地址   

   报错集:

   1、The file will have its original line endings in your working directory

     原因:是在windows下生成的所以换行和 linux 确实不同可能是因为这个导致的

     解决方法:git config --global core.autocrlf false

   2、 refusing to merge unrelated histories

     原因:最主要原因还是在于本地仓库和远程仓库实际上是独立的两个仓库。假如我之前是直接clone的方式在本地建立起远程github仓库的克隆本地仓库就不会有这问题了。

     解决方法:

   3、Your local changes to the following files would be overwritten by merge

     原因:

     解决方法:

       1) 服务器代码合并本地代码          

$ git stash     //暂存当前正在进行的工作。

$ git pull   origin master //拉取服务器的代码

$ git stash pop //合并暂存的代码

   2) 服务器代码覆盖本地代码

   $ git reset --hard  //回滚到上一个版本

       $ git pull origin master

    4、 RPC failed; HTTP 413 curl 22 The requested URL returned error

       解决方法:git config http.postBuffer 524288000

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多