git使用

一、参考网址

  1、《Pro Git》(git使用推荐)

  2. 揭开GIT的面纱--git原理(了解内部原理推荐)

  2、廖雪峰的git教程

  2、的git教程

  3、Git介绍(有常用命令图)

    

  4、git命令英文介绍

  5、Github标星34K+Star,这款开源项目助你秒建Git服务!(Gogs)

  6、给已经存在的项目添加git(把本地工程添加到远程仓库中)

  7、ubuntu16.04 更新git 至最新版本

  8. Git 撤销所有未提交(Commit)的内容

  9. git push命令(易百教程)

  10. git cherry-pick 教程

  11. 如何撤销 Git 操作?(阮一峰)

  12. git stash 命令的应用场景及详解

  13. git stash和git stash pop

  14. git 撤销,放弃本地修改

  15. git 本地分支追踪远程分支

  16. git 中怎样查看未传送(git push)到远程代码库的(git commit)提交?

  17. git 误删分支恢复方法

  18. Git 开发必备 .gitignore 详解!【建议收藏】

  19. git 打包(git bundle create)

  20. gitlab推送钉钉机器人配置

  21. git reset HEAD 用法

  22. Git 拉取远程分支

  23. git切换到指定远程分支

  24.解决报错:fatal: in unpopulated submodule * (两个git工程合并到一个工程遇到的问题)

  25. git submodule add子模块的添加,--recurse-submodules递归克隆子项目(注意:克隆时一定要带此参数,否则会丢失子模块的文件)

  26. git checkout切换到指定commit

  27. Git:git取消对某个文件的跟踪

  28. 跨仓库将B仓库的commit版本同步到A仓库

  29. vscode 终端 git status 中文乱码

  30. Git Checkout——如何从另一个分支获取文件

二、git使用步骤

1.基本配置(账号密码.....)  

  git config --global user.name "YOUR NAME"
  git config --global user.email "YOUR EMAIL"
  git config --global core.editor vim

  git config --global core.quotepath false  (git status 显示中文和解决中文乱码)

  git config --global core.pager 'less -x1,5'  (设置Tab显示为4个字符的宽度)

  git config --global http.sslVerify false   (取消SSL认证)

  git config --global credential.helper store  (Gitlab https拉取代码缓存用户密码配置)  

    git config --global alias.unstage 'reset HEAD --'  (取消暂存别名)

    git config --global alias.last 'log -1 HEAD' (查看最后一次提交别名)

  加--global,会在用户家目录的.gitconfig文件中生成下面的配置。如果没有--global,则在当前项目下的.git/config文件中添加。

2.克隆代码  

  git clone http://192.168.22.xxx:3000/xxx/aaa.git
  以上会在当前目录建立aaa目录,并获取服务端代码到aaa目录中,也可以手动创建aaa目录
  使用如下命令进行克隆:
  mkdir aaa
  cd aaa
  git clone http://192.168.22.91:3000/xxx/aaa.git .

2.1 本地创建仓库,并与远程仓库关联方法

    2.1.1 参考网址:

      1. Git 远程仓库(w3cschool)

      2. 修改git远程仓库路径

      3. 主要命令:   

1)Git查看远程仓库名称

git remote -v

2)git 更换 url

git remote set-url origin <new url>

3)添加远程关联

git remote add origin <url>

4)删除远程关联

git remote remove <url>

    2.1.2 实践 

echo "# w3cschool.cn" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com.WongJay/w3cschool.cn.git
git push -u origin master

  3.查看修改变动

  git status

  4.添加改动到暂存区

    git add [FILES]
    其中FILES为文件列表(空格分隔),也可以是目录名,如果是目录名,则会递归添加目录下所有文件

  5.查看状态并提交

    git status
    git commit
    会自动使用设置的编辑器打开,比如vim,在里面天上提价日志,格式参考Angular格式:
    https://www.cnblogs.com/louyifei0824/p/10135450.html

  6.推送到远程服务器    

    git push origin master
    以上推送到远程服务器的master分支(主分支),如果要推送到其它分支,使用其它分支名即可

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

 

    推送一个本地新分支到远程,本设置跟踪分支:

      git push -u   origin   feat/cjb/xxx    这样本地分支feat/cjb/xxx跟踪了远端分支feat/cjb/xxx

  7. 查看所有分支   

   git branch -a  (包含远程分支)

   git branch -v  (查看每一个分支的最后一次提交)

   git branch -vv (所有的本地分支列出来并且包含更多的信息, 如每一个分支正在跟踪哪个远程分支与本地分支是否是领先、落后或是都有)

  8. 创建分支
    git branch testing
    以上创建了testing分支

      设置跟踪远程分支:

        git branch --set-upstream-to=origin/<branch> develop

        设置本地分支develop跟踪origin/<branch>远程分支

  9.切换分支
    git checkout testing
    以上切换到testing分支去

  10.创建并切换分支
    git checkout -b testing
    以上创建testing分支并切换到该分支去

  11.分支合并
    git checkout master
    git merge testing
    以上切换到master分支,将testing分支和master分支进行合并

  12. 删除分支
    git branch -d testing
    以上删除testing分支

  13. 忽略文件

    我们可以在项目目录下创建一个名为 .gitignore 的文件,列出要忽略的文件模式。 来看一个实际的例子:

$ cat .gitignore
*.[oa]
*~

   14. 查看远程仓库

$ git remote -v
origin    https://github.com/schacon/ticgit (fetch)
origin    https://github.com/schacon/ticgit (push)

  指定选项 -v,会显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL

    15. 查看未暂存的和已暂存的修改

      1)git diff  (未暂存)

      2)git diff --staged  (已暂存), git diff --cached 查看已经暂存起来的变化:(--staged 和 --cached 是同义词)

     16. 拉取

          git fetch + git merge与 git pull的区别:

      建议使用git fetch + git merge 代替git pull

      如: git fetch origin develop

        git  merge remotes/origin/develop

         由于 git pull 的魔法经常令人困惑所以通常单独显式地使用 fetch 与 merge 命令会更好一些 

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

  17.  查看提交历史

    git log

    git log -p -2   (选项 -p,用来显示每次提交的内容差异。 你也可以加上 -2 来仅显示最近两次提交)

    git log --oneline --decorate  (查看各个分支当前所指的对象),如:  

$ git log --oneline --decorate
f30ab (HEAD, master, testing) add feature #32 - ability to add new
34ac2 fixed bug #1328 - stack overflow under certain conditions
98ca9 initial commit of my project

    正如你所见,当前 “master” 和 “testing” 分支均指向校验和以 f30ab 开头的提交对象

    git log -10 --name-status

  -(n)显示最近的10次提交
  --name-status 显示新增、修改、删除的文件清单

  18. 撤销操作

     git commit --amend  (--amend 选项的提交命令尝试重新提交)

$ git commit -m 'initial commit'
$ git add forgotten_file
$ git commit --amend

    最终你只会有一个提交 - 第二次提交将代替第一次提交的结果

  19. 取消暂存的文件

    git reset HEAD <file>... 来取消暂存

    或 git rm --cached -r .

  20. 撤消对文件的修改

    git checkout -- [file]

    你需要知道 git checkout -- [file] 是一个危险的命令,这很重要。 你对那个文件做的任何修改都会消失 - 你只是拷贝了另一个文件来覆盖它。

  21. 查看已暂存和未暂存的修改

    1) 查看未暂存的修改

      git diff

    2)查看已暂存的修改

      git diff --staged  (查看已暂存的将要添加到下次提交里的内容,可以用 git diff --cached 命令。(Git 1.6.1 及更高版本还允许使用 git diff --staged,效果是相同的,但更好记些。))

  22.  打标签

    1)附注标签: 

       git checkout master

     git tag -a v1.2.0 -m 'Add to support web'
     git show v1.2.0
     git push origin v1.2.0
  23.修改远程服务器URL
    git remote set-url origin https://192.168.22.91:5000/xxx-app/xxx700.git
  1. 删除远程分支 

    git push orgin --delete feature/cjb/sd

  1. 删除本地有但在远程库中已经不存在的分支

    git remote prune origin

    使用命令:git remote show origin ,会提示用上面的命令删除过时的远程分支

    

 

 

 

 

  24. 把其他分支的修改合并到当前分支的命令

    在当前分支的目录下使用git cherry-pick命令

  25. 远程仓库的重命名

    如果想要重命名引用的名字可以运行 git remote rename 去修改一个远程仓库的简写名。 例如,想要将 pb 重命名为 paul,可以用 git remote rename 这样做:

$ git remote rename pb paul
$ git remote
origin
paul

  值得注意的是这同样也会修改你的远程分支名字。 那些过去引用 pb/master 的现在会引用 paul/master

  26. 远程仓库的移除

  如果因为一些原因想要移除一个远程仓库 - 你已经从服务器上搬走了或不再想使用某一个特定的镜像了,又或者某一个贡献者不再贡献了 - 可以使用 git remote rm :

$ git remote rm paul
$ git remote
origin

   27. 撤销提交(回滚)

    git revert原理: 在当前提交后面,新增一次提交,抵消掉上一次提交导致的所有变化。它不会改变过去的历史,所以是首选方式,没有任何丢失代码的风险。

    git revert 命令只能抵消上一个提交,如果想抵消多个提交,必须在命令行依次指定这些提交。比如,抵消前两个提交,要像下面这样写。

$ git revert [倒数第一个提交] [倒数第二个提交]

   28. 暂存修改,用于切换分支

      git stash命令

   29. git fetch命令

  当本地不存在的分支,想要从远程拉取过来,可以使用git fetch命令(用git pull命令会执行合并操作,导致冲突),示例:

  

//会从远程拉取feat/cjb/lcuRefactor分支,并且在本地创建分支feat/cjb/lcuRefactor
git fetch origin feat/cjb/lcuRefactor:feat/cjb/lcuRefactor

  30. 误删除分支处理

  不小心把远程仓库的分支和本地分支都删除了,如果处理:

  在本地还有个缓存,其分支前面加了remotes/origin, 如:

   然后通过命令:git checkout -b feat/cjb/xxx remotes/origin/feat/cjb/xxx,则可以恢复本地分支

  分支删除顺序:先删除本地(如何分支没有合并,会有警告提示),然后删除远程仓库中的分支;否则,在删除本地分支时,会一直提示没有合并

三、练习

  1、在github上新建资源库,然后把本地项目提交到新库的步骤:

    在本地项目目录下操作(远程库名test.git):

    1)echo “# test” >> README.md   //在本次创建README.md文件

    2)git init   //在本地创建git库

    3)git add   README.md   //把README.md保存到git

    4)  git remote add origin https://github.com/xxxx/test.git  //创建远程库,名字叫origin

    5) git push -u origin master  //本地库名master,推送到远程库,-u把本地库与远程库关联起来

  2、配置验证信息

    1)使用以下命令生成ssh-key: 

      ssh-keygen -t rsa -C  "youremail@example.com"

    2) 在~/下生成.ssh文件夹,进去,打开id_rsa.pub,复制里面的key(注意:拷贝的文件后缀有.pub,表示公钥)

    3)在github上,进入 Account Settings(账户配置),左边选择SSH Keys,Add SSH Key,title随便填(如company, home),粘贴在你电脑上生成的key

    4) 验证是否成功     

      $ ssh -T git@github.com       

       Hi WongJay! You've successfully authenticated, but GitHub does not provide shell access.

四、 git插件

  1. gitui

posted @ 2019-12-09 10:15  shanyu20  阅读(135)  评论(0编辑  收藏  举报