您的位置:首页 > 其它

git常用命令汇总

2017-04-17 11:46 253 查看
1、了解环境变量
  /etc/gitconfig""""
  .gitconfig
2、设置身份""
  git config --help
  git config --global user.name “lizihao”
  git config --global user.email lizihao@shiqichuban.com
  git config --unset --global user.name "haoge"
3、检查本地git配置:
  git config --list
4、设置编辑器
  git config --global core.editor emacs
5、设置比较工具
  git config --global merge.tool vimdiff
6、将目录设定为git本地工作目录
  git init
7、将本地文件添加到git管理系统
  git add
8、将本地临时存储空间中的文件提交到本地仓库:
  git commit -m "add hello.py"
9、将远程仓库克隆到本地
  git clone git://……
10、git remote 查看远程版本库
  git remote -v 查看远程库的信息,包括名称和地址
11、查看当前各文件的状态
  git status
12、若想某文件不被git系统控制,可以加入到.ignore文件中
13、git diff 比较工作目录中的文件与本地缓存staged area
  git diff --cached 比较本地临时存储空间与本地local repo

14、git mv hehe.txt lala.txt 对于已经add的文件,需要通过git mv来改名,将索引区和本地文件一并改名为lala.txt,如果之前已经commit到stage,则git mv后还需要commit一个rename操作
  git rm -f hehe.txt 对于已经add到stage的文件,只是在本地磁盘和索引区被删除掉了,如果文件已经被commit,git rm 删除后,还需要commit这个delete的操作将stage中的文件也删除;
  git rm --cached test.txt 可以将暂存区stage中的文件删除,本地不删除
  git status 会提示有hehe.txt文件删除状态
此时有两个选择,
  git push 提交删除将远程仓库中的这个文件也一并删除
  git reset 从stage中撤销到index中,即reset可以撤销git add的操作
  git checkout -- hehe.txt 从index中再检出这个文件到本地
15、用SHN1加密字符来标识git的版本号
16、git log 查看有哪些提交操作,add操作不记录,commit操作才记录
  git log --oneline 提交操作日志一行展示,没有很多的描述性信息
  git whatchanged 查看有哪些改变
  空格键是向下翻页
  w键是向上翻页
  q键是退出
17、git pull origin 是将远程库的数据拉取到我本地并与我的本地仓库合并
  git push origin master 是将我本地commit的操作推送同步到远程仓库
  有时候没有权限直接push远程仓库的master分支,可以git format-patch origin master 将所有的修改都打成补丁,通知仓库管理员审核,通过后直接生效;
  git fetch origin 是将远程库的数据拉取到我本地但不与我本地仓库合并,而是建立新的分支

18、git branch 查看当前所处的分支,也能确定当前处于哪个分支
  git branch --list 列出所有的分支,同git branch一样
  git branch zengbin 创建新的分支zengbin
  git checkout zengbin 切换分支到zengbin
  git show-branch 查看当前分支与其他分支的不同
  git diff master zengbin 查看两个分支的不同
19、合并--merge
  git merge "merge zengbin to master" HEAD zengbin
  将zengbin这个分支合并到当前的master分支
20、git commit -a -m "xxxx"
  git commit -a是把unstaged的文件变成staged(这里不包括新建(untracked)的文件),然后commit,
  一般都不推荐使用git commit -a,还是推荐先git add再git commit。

21、两个分支如果修改了同一个文件,在merge两个分支时会报冲突;
  解决冲突的方法是:
  git merge "merge zengbin to master" HEAD zengbin
  git status 查看哪个或哪些文件存在冲突
  在master分支分别打开这些文件进行修改,改成想要的文件;
  git commit -a -m "fix confict" 将解决冲突而修改的文件提交,会提示merge成功
  要注意解决冲突只是修改了master分支的文件内容,zengbin分支的冲突文件不会同步更新

22、在开发到某一阶段,可以将本地仓库(已经都commit的)标定一个标签或版本号,方便版本间来回切换;
  git tag v0.0.1 -a -m "tag v0.0.1 2017-03-28"
  继续一些开发工作,也可以进行一些tag标定
  git tag v0.0.2 -a -m "tag v0.0.2 xxxx"
  可能v0.0.2版本问题比较多,想要回退到v0.0.1
  git checkout v0.0.1
  可以在各个标签版本之间来回切换
  git checkout v0.0.2

23、revert和reset
  1、revert回退到指定版本
  首先用git log --oneline查看提交的版本号
  再用git revert HEAD~4返回到从0开始数前面4次的提交,git revert HEAD是回退最新的一次提交;注意如果是新增加的一个文件,使用revert回退,会将版本仓库、暂存区以及本地的这个文件都删除掉;另外,revert的提交本身也可以被回退;
  2、reset回退到指定版本
  首先用git log --oneline查看提交的版本号
  再用git reset 8631ead 返回到8631ead对应的版本,该版本之后的提交都会被删除;
  git reset 8631ead --soft 软重置,只会将版本库的提交删除,出现一批待提交的操作;
  git reset 8631ead --mixed 默认,混合重置,会将版本库和暂存区都删除,出现待添加操作
  git reset 8631ead --hard 硬重置,将本地的文件操作也删除,一般不用;
  revert和reset的区别:
  git revert 回退会保留原有的提交版本号,git log还会保留被回退的提交操作的版本号,通过回退revert或者别的操作,能用到被回退的版本号;
  git reset 重置会将指定版本号之后提交的操作的版本号都删掉,被重置的操作记录不会再出现在git log中,而且reset有soft、mixed、hard的区别,revert没有的;

24、删除分支:
  git branch -d zengbin
  分支重命名:
  git branch -m dev2 dev 表示将dev2分支重命名为dev
25、在dev分支本地修改了一些文件,可能突然会让修改一些线上的代码,如果直接在本地的dev分支修改,在提交的时候少不得会把之前修改的文件也一并提交,就算指定修改bug的文件提交,在merge分支的时候,也会提示本地还有文件修改,这是因为每个分支的暂存区都是共用的;
  解决的方法是,将本地修改的一些文件先暂时封存起来:
  git stash
  这样本地修改的文件就从dev分支的本地暂时清楚,这样在创建一个新的分支:
  git checkout -b bug_001
  正常的修改bug,然后提交,然后merge,然后不喜欢的话可以删除bug_001分支
  整个的bug修复过程结束后,在回过头来进行dev分支本地文件的修改,继续开发工作;
  将封存的文件提取出来:
  git stash pop 这个命令是取最新的一次封存内容;
  git stash list 列出所有的封存记录
  git stash applay stash@{2} 提取指定版本的封存;
26、本地仓库管理远程仓库:
  git remote add origin https://github.com/......
27、git branch -r 查看本地分支与远程的对应关系
  git branch -a 查看远程分支
28、git push -u origin dev 创建远程分支dev并将本地文件push到新建的dev分支
  git checkout -b dev2 本地创建dev2分支并切换到dev2分支
  git checkout -b dev3 origin/dev 本地创建dev3分支并关联到远程分支dev
29、添加关联一个远程仓库:
  git remote add [shortname] [url]:
  git remote add pb git://github.com/paulboone/ticgit.git
30、删除一个远程版本库的关联:
  git remote remove pb
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: