git命令大集合

git 忽略配置

全局忽略DS_Store:

1.vi ~/.gitignore_global 
在gitignore_global中写入: 
.DS_Store 
*/.DS_Store 
2.vi ~/.gitconfig 
配置.gitconfig 文件如下: 
[user] 
name = xiaoronglv 
email = xxxxx@gmail.com 
[push] 
default = matching 
[core] 
excludesfile = /Users/holy/.gitignore_global 
其中:/Users/holy 可以在命令行输入pwd即可查看。

 

详见:http://blog.csdn.net/que_li/article/details/52918545

git 使用整理

密钥生成

cd ~/.ssh       //检查本机中是否有公钥信息
mkdir key_backup
cp id_rsa*key_backup        
rm id_rsa       //删除已有公钥
"新生成公钥"
ssh-keygen -t rsa -C "git注册账号邮箱"        //回车后会让输入用户名,再回车输入密码,在是确认密码
cat ~/.ssh/id_rsa.pub  //显示刚生成的公钥

/*将公钥添加到本地*/
<windows>
clip < ~/.ssh/id_rsa.pub
<Mac>
pbcopy < ~/.ssh/id_rsa.pub
<Linux>
xclip -sel clip < ~/.ssh/id_rsa.pub
然后在 .ssh文件中的 id_rsa就为公钥
把公钥添加到coding中
然后运行 ssh -T git@git.coding.net 看是否已经联通

上传文件到项目

电脑中创建一个空文件,不要以中文命名。
打开电脑cmd命令框
cd 文件目录 //配置文件根目录
git init            //初始化
git remote add origin 远程项目地址        //链接远程服务器
git add .       //上传目录下所有文件
git commit -m "第一次上传"       //提交,并注释
git pull origin 分支      //链接远程主机分支到本地
git push origin master      //上传本地所有文件到master分支
git push -u origin 分支       // 当远程存在多个分支时,使用-u

本地分支

git branch      //查看本地所有分支
git branch xxxx //创建xxxx分支
git checkout xxxx   //切换到分支xxxx
git branch -d xxxx  //删除本地xxxx的分支,注意需要在非删除分支下

切换分支时提示you need to resolve your current index first
git reset --merge

克隆代码到本地

git clone 远程地址  // 下载远程代码到本地
git clone 远程地址 -b xxxx  // 克隆远程某分支上的代码,xxxx为分支名

删除文件

clone远程文件后,删除需要删除的文件,然后
git add --all

删除远程仓库文件及文件夹

git rm -r --cached ignore_file //删除缓存
git rm -r --cached a/2.txt //删除a目录下的2.txt文件   
git rm -r --cached a // 删除a目录
git commit -m "删除a目录下的2.txt文件" 
git push

查询跟踪

git status
反馈:
    nothing to commit,working directory clean       //  没有提交,项目很干净
    changes not staged for commit       // 有红字提示,项目被修改,但是未被暂存
    changes to be committde     // 绿字提示,项目已经被暂存

远程库操作

git remote      // 列出远程分支
git remote -v       // 列队远程分支对应的url
git remote add xxx url      // 创建远程地址为url的xxx分支
git remote remove xxx   //删除远程分支xxx
git remote set-url xxx url      // 将xxx的远程地址变更为url

config,设置多个密钥到本地

//第一个密钥使用默认形式,第二个密钥配置如下
Host gitlab地址 andy  // andy为需要的名称
HostName gitlab地址
User git
Port 22
IdentityFile ~/.ssh/gitlab_id_rsa   // 密钥地址

rebase

https://www.atlassian.com/git/tutorials/rewriting-history/git-rebase
https://www.atlassian.com/git/tutorials/merging-vs-rebasing

 

多分支操作合并到master

// 自己的工作分支
git checkout xxx

// 提交工作分支修改
git commit -a

// 回到主分支
git checkout master

// 获取远程最新的修改,不会产生冲突
git pull

// 回到工作分支
git checkout xxx

// 合并主干修改,如果有冲突在此时解决
git rebase master

// 回到主分支
git checkout master

// 合并工作分支的修改,此时不会产生冲突
git merge xxx

// 提交到远程主干
git push

删除远程分支

git push --delete origin xxx        //删除远程上xxx的分支

清空缓存栈

git stash clear

node_modules过长无法删除

rm -rf node_modules/

push tag发布

git tag publish/版本号
git push origin publish/版本号

切换分支

$ ~/ccbin/mkview.sh  切换分支

项目相关命令

##ssh三方访问工具SecureCRT 一般口令
ssh admin@服务器地址
* 服务器名称:admin
* 密码:
* cd ccbin  切换到ccbin文件
* ./ccupdate.sh 更新服务器 
* ./ccupdate.sh && ./build.sh && ./deploy.sh
* 错误日志  
* cd logs/appstore 切换到对应项目日志
* ls 查看日志列表
* tail -f common-error.log 
* 修改antx
    * vim antx.properties
    * i修改 :w 保持 :q 退出
    * ls 查看目录下的内容
    * tail -200f common-error.log 查看错误日志

 

删除文件夹

* cd /usr/local/bin 切换路径
* sudo rm -rf /usr/local/bin/tnpm 删除tnpm文件夹


创建并切换到本地分支 

* git checkout -b 【本地分支名】 origin/【远程分支名】

删除.git 重新初始化git(delete the old .git history and initialize new history)

$ rm -rf .git
$ git init

检出命令

* git clone -b 【本地分支名】【远程分支名】

合并分支:

* git branch 查看本地分支
* git branch -a 查看分支详情(本地分支及远程分支)
* git checkout 目的分支(如master)
* git merge 待合并分支(如branch1)【即将branch1分支合并到master】
* git push origin master 将合并后的代码推送到远程分支


回滚版本

* git log 查看提交版本
* git revert 版本号 将本地库回滚到该版本号之前的版本(即取消该版本及之后的提交)
* 解决冲突
* git add . && git commit -m “” && git push 重新提交版本之前的代码

删除分支

* git branch -D br 删除本地分支
* git push origin :br  (origin 后面有空格) 删除远程分支

【远程代码库回滚】:

这个是重点要说的内容,过程比本地回滚要复杂
应用场景:自动部署系统发布后发现问题,需要回滚到某一个commit,再重新发布
原理:先将本地分支退回到某个commit,删除远程分支,再重新push本地分支
操作步骤:
1、git checkout the_branch
2、git pull
3、git branch the_branch_backup //备份一下这个分支当前的情况
4、git reset --hard the_commit_id //把the_branch本地回滚到the_commit_id
5、git push origin :the_branch //删除远程 the_branch
6、git push origin the_branch //用回滚后的本地分支重新建立远程分支
7、git push origin :the_branch_backup //如果前面都成功了,删除这个备份分支

 http://www.jianshu.com/p/8f0433090e2b?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io  Git详解以及使用遇到问题解决

 

Git stash 命令

git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。
git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。

 

一、For Windows

  • 下载地址:http://msysgit.github.io/
  • 安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
  • git 配置(其实是为常用命令创造别名)
    $ git config --global user.name "Your Name" 

  •   $ git config --global user.email "email@example.com"



—global 这个参数是说明,当前设备上的所有Git都会使用这个配置。

  • 创建版本库
    $ mkdir abc //创建目录 abc

  •   $ cd abc //进入 abc 目录

  •   $ pwd //显示当前目录

  •   执行结果:/Users/userName/abc



  • 将abc目录变为某项目的版本库目录
    $ git init //初始化,会生成一个 git文件夹,注意别动改文件夹下内容。用于跟踪管理版本

  •   执行结果:Initialized empty Git repository in /Users/userName/abc .git/



  • 新增文件
    $ git add README.MD  //当前目录下,创建README.MD

  •   $ git commit -"123123" //添加备注,并添提交至git仓库

  •   对于 git config -"" 的省略,可以为 git c



commit是批量型提交,但add确是需要多次添加一个文件

  • 查看状态

$ git status

  • 关联远程库
    $ git remote add origin 远程库地址 //远程库地址是托管平台创建代码库时所生成的xxxx.git



主要用于对代码托管平台进行维护,github、coding

  • 更新远程代码到本地
  • git clone xxx.git库地址

  •   git pull origin master



  • 将git仓库的项目文件,提交至远程库
    git push -u origin master  //将该目录下的文件推送到远端(origin)上的 "master" 分支,第一次提交必须这么写

  •   git push origin master //推送最新修改,第一次之后每次更新可以使用该命令



  • 版本回滚
    git log //输出提交的历史记录

  •   git checkout 9位字符编码

  •   或者

  •   git checkout -b my_previous_version 9位字符编码



  • 删除分支
    git branch -d new_feature//把分支合并到主干分支,从主干(master)分支上发送



    • 假如修已经合并了,那么只会删除分支。假如分支未合并,会得到错误信息。所以需要强制删除
      git branch -D new_feature



 

  • 总的来说
    $ git init

  •   $ git remote add origin xxxx.git

  •   $ git pull

  •   $ git add .

  •   $ git commit -"123123" 

  •   $ git push



在 git 中忽略文件 gitignore 与 exclude

常见问题

  • error: failed to push some refs to …
    1. 这是由于远程仓库中代码版本与本地不一致冲突导致的,需要先git pull更新
    2. 如果出现报错 fatal: Couldn’t find remote ref master或者fatal: ‘origin’ does not appear to be a git repository以及fatal: Could not read from remote repository.
    3. 则需要重新输入$ git remote add xxxx.git
  • fatal: remote origin already exists. 
    1. $ git remote rm origin
    2. $ git remote add origin xxxx.git
    3. 如果输入$ git remote rm origin 还是报错的话,error: Could not remove config section ‘remote.origin’. 我们需要修改gitconfig文件的内容
    4. 找到你的github的安装路径,我的是C:\Users\ASUS\AppData\Local\GitHub\PortableGit_ca477551eeb4aea0e4ae9fcd3358bd96720bb5c8\etc.找到一个名为gitconfig的文件,打开它把里面的[remote “origin”]那一行删掉就好了!
  • there is no tracking information
    1. 该问题发生在新创建远程库,进行git pull更新时
    2. git branch —set-upstream master origin/master //这样才可以直接输入git pull 、git push
    3. 否则每次输入 git push origin master || git pull origin master
    4. 最后按以下方式提交
      git add .  

    5.  git commit -"first time add project"  

    6.  git push



命令一览表

 

posted @ 2016-12-08 12:15  Amy_Li  阅读(6902)  评论(1编辑  收藏  举报