您的位置:首页 > 其它

git命令大全

2017-10-24 17:43 344 查看
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   // 密钥地址

多分支操作合并到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: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,
4000
将当前的工作区内容保存到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 -m "123123" //添加备注,并添提交至git仓库

  对于 git config -m "" 的省略,可以为 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 -m "123123" 

  $ git push

在 git 中忽略文件 gitignore 与 exclude
http://www.cnblogs.com/pylemon/archive/2012/07/16/2593112.html
常见问题

error: failed to push some refs to …

这是由于远程仓库中代码版本与本地不一致冲突导致的,需要先git pull更新

如果出现报错 fatal: Couldn’t find remote ref master或者fatal: ‘origin’ does not appear to be a git repository以及fatal: Could not read from remote repository.

则需要重新输入$ git remote add xxxx.git

fatal: remote origin already exists. 

$ git remote rm origin

$ git remote add origin xxxx.git

如果输入$ git remote rm origin 还是报错的话,error: Could not remove config section ‘remote.origin’. 我们需要修改gitconfig文件的内容

找到你的github的安装路径,我的是C:\Users\ASUS\AppData\Local\GitHub\PortableGit_ca477551eeb4aea0e4ae9fcd3358bd96720bb5c8\etc.找到一个名为gitconfig的文件,打开它把里面的[remote “origin”]那一行删掉就好了!

there is no tracking information

该问题发生在新创建远程库,进行git pull更新时

git branch —set-upstream master origin/master //这样才可以直接输入git pull 、git push

否则每次输入 git push origin master || git pull origin master

最后按以下方式提交

git add .  

 git commit -m "first time add project"  

 git push
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  git