git init 初始化git仓库
git add . 将所有的代码添加到track(git add -A 全部添加,git add -i 交互式添加),取消所有添加: git reset HEAD
git log 查看记录
git reflog 查看所有历史log(常用于reset后,恢复)
git status 查看当前修改的状态
git diff <hash> <file> 查看different(例: git diff HEAD xxx.c)
git commit -m "coment" 提交版本,git commit --amend 修改刚刚提交的版本
git reset <hash> 回到某一版本,但不修改文件,只改log和文件的stage
git reset --hard <hash> 回到某一版本,包括文件
git help xxx 查看帮助(例:git help branch)
git branch xxx创建分支,git branch查看所有分支 ,git checkout master 切到主分支,git checkout -b xxx常见并切到某个分支
设置颜色:
- alec@PC$ git config --global color.status auto
- alec@PC$ git config --global color.diff auto
- alec@PC$ git config --global color.branch auto
- alec@PC$ git config --global color.interactive auto
这个可视化工具叫做Meld, 非常方便. sudo apt-get install meld 就可以安装.
安装以后Git使用命令:
git rebase xxx
这时候会如果有冲突系统就会提示出现conflict, 然后可以调用git mergetool, 系统会自动打开meld.
编辑完毕以后save&quit, 然后运行:
git rebase --continue
merge工作就完成了.
怎么让git diff命令也使用这个工具呢?
配置git :
<span style="font-size: 16px;">git config --global diff.external meld</span>
比较修改的文件:
<span style="font-size: 16px;">git diff HEAD^ filename </span>
其中 HEAD^ 是指上一个版本。
Meld 会被叫起来,但是会说参数错误"Wrong number of arguments (Got 7)"。原因是GIT 会送7 个参数给Meld ,但是Meld 只需要两个参数,两个需要比较的档名。所以不能直接用Meld ,必须要做一点小修改:
在自己的的目录下建立一个git-meld.sh 的script:
vi ~/git-meld.sh
加入以下内容:
#!/bin/sh
meld $2 $5
改变档案的属性:
chmod 777 ~/git-meld.sh
然后把external diff 改成这个shell script :
git config --global diff.external ~/git-meld.sh
大功告成!
想恢复的话,修改~/.gitconfig文件,删掉对应的项即可。