GIT常用命令整理

来源:互联网 发布:学声乐的软件 编辑:程序博客网 时间:2024/06/01 22:48

当前代码管理工作流
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
0 0