====== Git 经常使用命令合集 ======
=== 1.Git 文档 ===
Git 中文文档观看地址:http://git.oschina.net/progit/
=== 2.Git 基本指令 ===
git config --global user.name //设置全局username,不加gloabl为局部
git config --global user.email //设置全局用户邮箱。
git --bare init //初始化git 不生成.git文件夹,没有工作空间(work tree)。
远程仓库初始化时使用。
git init //初始化git,生成.git文件夹
cat .gitignore //依据规则配置忽略跟踪文件。
git clone url //从url路径克隆项目到本地仓库。
git status //查看工作文件夹下文件状态。
git add file //将文件或者路径加入到暂存区。
git reset HEAD file //将文件撤出暂存区。
git checkout --file //取消对文件的改动。
git rm file //删 除文件 -cached 不删除本地文件 -f强制删除
git diff //查看改动文件和暂存区文件的差异 -staged //暂存文件与上次提交的差异。
git commit -am “txt” //将暂存区的和已改动的文件提交进仓库txt为记录。
git log //查看提交历史 可通过gitg查看。
git fetch pd //从远程仓pd库抓取数据到本地git pull。
git push pd master //将本地master分支推向pd远程仓库。
git push [远程仓库名][本地分支]:[远程分支]
/××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
假设远程仓库不是bare init的情况下,当本地仓库push远程仓库所在分支时结果
不会对应在work tree上。假设远程仓库不在push的分支上则能够。(远程仓库不
须要work tree)
×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××/
=== 3.Git remote 指令 ===
git remote -v //查看当前远程仓库的名字和地址的信息列表。
git remote show wepu //查看远程仓库wepu的信息
git remote add test url //加入名为test的远程仓库。
git remote rename pd paul //将远程仓库pd名字改为paul
git remote rm paul //移除远程仓库paul
=== 4.Git branch 指令 ===
分支是从某个提交对象往回看的历史,本质是指向commit对象的可变指针(HEAD)。每次提交会自己主动向前。
git branch //查看当前仓库分支
git branch -v //添加显示最后一个提交对象的信息
git branch -a //查看远程仓库分支
git checkout -b A //创建并指向A分支 = git branch A + git checkout A
git branch -d A //删除A分支
git push pd :A //删除远程仓库上的分支A ,省略本地分支具体格式见基本指令
git merge A //把A分支合并入当前分支,形成一次新的提交。当两个分支都对某个文件同样行改动数据
须要工解冲突 。
解决完之后运行add和commit
git rebase A //把A分支合并入当前分支,形成一次新的提交当两个分支都对某个文件同样行改动数据需
要人工解冲突。解决完之后add.rebase –continue
git rebase –onto master A B //取出B分支,找出B和A分支的共同祖先之后的变化,以master为基地分支进行rebase
git cherry pick commitID //将别的分支的提交放在当前分支。先git log确认想要移动提交对象的commitID
git stash //搁置当前全部的修改。先git add.将全部的修改增加暂存区,然后git stash save "detial"
这时工作平台就回到修改前的版本号了。如须要恢复:git stash apply
/××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
rebase:假设分支中的提交对象已经公布到公共仓库,新手最好不要对该分支进行
rebase操作。由于rebase会抛弃一些现有的提交对象,然后创造出不同的新的提
交对象。
同步代码后可能会出现混乱
×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××/