您的位置:首页 > 其它

GIT常用命令整理

2015-12-23 12:45 381 查看
当前代码管理工作流

Repo init

Repo sync

Repo start

Git status

Git add

===================

pushcode工具用python写就,具体流程参考 ~/bin/pushtool/pushcode.py

代码被提交到Gerrit服务器上,记得添加指定审核人

pushcode时提交类似如下信息: 项目:客户:详细内容

Q600:京华:原厂(共泰)更新LCD效果参数

Type: 项目

TestPoint: LCD

EffectModule: LCD

===================

pushcode代替以下几步:

Git commit

Git push

====================

参考链接:
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013744142037508cf42e51debf49668810645e02887691000
sudo apt-get install git

1 .安装完成后,每个机器都必须自报家门:你的名字和Email地址。

$ git config --global user.name "Your Name"

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

::::git config是用于进行一些配置设置,有三种不同的方式来指定这些配置适用的范围:

1) git config 默认当前目录是一个git仓库 针对一个git仓库 对应目录下 .git/config

2) git config --global 针对一个用户 用户设置可以覆盖系统设置,使每个用户有自己独特的设置 配置文件 ~/.gitconfig

3) sudo git config --system 针对一个系统,因为是针对整个系统的,所以必须使用sudo 这里可以设置一些默认编辑器等选项 配置文件 /etc/.gitconfig

2.创建软件仓库repository

在合适目录中,通过git init命令把这个目录变成Git可以管理的仓库:此时目录多出一个.git目录,不要擅自更改。

3.时光机穿梭

>>版本回退<<

第一步,用命令git add告诉Git,把文件添加到仓库缓存区(stage):

$ git add readme.txt(用stage更好)

第二步,用命令git commit告诉Git,把文件提交到仓库:

$ git commit -m "wrote a readme file"

$ git status 查看工作状态

$ git diff 查看修改

$ git diff HEAD -- readme.txt HEAD 指定和哪次的提交对比(HEAD可以是版本编号,--指定文件)

$ git log 查看更改历史

$ git log --stat 显示一些diffstat

$ git log --name-status

$ git log --remotes 远程log

首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。

$ git reset --hard HEAD^ 回到过去 (--hard是丢弃所有修改,不想丢弃就不加此选项)

$ git reset HEAD^ 回到过去 但保留暂存区修改

$ git reflog 配合 git reset --hard 3628164 回到未来

$ git reset --hard 3628164 跟版本号的前几位就可以了

>>撤销修改<<

$ git checkout -- [filename] 放弃工作区的修改

$ git reset HEAD -- file 撤销暂存区的修改

>>删除文件<<

用命令git rm删掉,并且git commit

4.远程仓库

$ git remote add origin [git@github.com:michaelliao/learngit.git] 将本地仓库推送到远端

$ git push <-u> origin master 加-u将远程分支和本地分支关联起来,方便以后的push

$ git push origin master 将master分支推送到origin库

$ git push 将当前分支推送到远端对应

$ git clone [git@github.com:michaelliao/gitskills.git] 从远端克隆

5.分支管理

$ git checkout -b dev |git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:

$ git branch dev

$ git checkout dev

$ git branch 查看当前分支

$ git checkout master 切换分支

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

$ git branch -d dev 删除指定分支

$ git log --graph 查看合并分支图

$ git branch -r 远程branch信息

6.多人协作

$ git remote 查看远程信息 -v 显示详细内容

6.1. 首先,可以试图用git push origin branch-name推送自己的修改;

6.2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

6.3. 如果合并有冲突,则解决冲突,并在本地提交;

6.4. 没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name;

6.5. 在本地创建和远程分支对应的分支,使用

git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;

7.标签管理

$ git tag <name> 在当前分支打标签,默认在HEAD打,也可以指定commit id

$ git tag -a v0.1 -m "version 0.1 released" 3628164

命令git push origin <tagname>可以推送一个本地标签

命令git push origin --tags可以推送全部未推送过的本地标签;

命令git tag -d <tagname>可以删除一个本地标签;

命令git push origin :refs/tags/<tagname>可以删除一个远程标签。

8.忽略文件

git-config status.showUntrackedFiles no/normal/all

git config --global core.excludesfile ~/.gitignore

附:

忽略文件
http://www.cnblogs.com/qwertWZ/archive/2013/03/26/2982231.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: