git常用命令汇总(命令行模式)

由于之前做个web项目去转盘网(http://www.quzhuanpan.com), 和几个朋友一起做的,考虑到代码托管,团队协作,所以深入研究了下git,下面是一些git常用的命令,分享给大家,希望大家喜欢。

1. 建立空的版本库    (管理员使用,普通用户忽略)
git --bare init 
或者 :
mkdir -p src.git
cd src.git
git --bare init --shared


2. 整理源代码   (管理员使用,普通用户忽略)
(1) 删除源代码里的编译生成的文件和文件夹
(2) 删除源代码里的.git文件夹和.gitignore文件
find . -type d -name ".git"|xargs rm -rf
find . -type f -name ".gitignore"|xargs rm -rf
        find . -type f -name ".gitattributes"|xargs rm -rf


在一个目录下面递归查找包含指定字符串的文件
    grep 'string' . -r --color


3. 配置git   (重要,每个用户都需要使用)
git config --global color.ui true  使git 能还显示颜色
git config --global user.name "nick.wang" 设置git 用户名
git config --global user.email [email protected] 设置git 邮箱


4. 查看历史  (重要,每个用户经常使用)
git log --name-status
显示每次修改的LOG和修改的文件列表


git log --graph
显示版本图


5. 查看差异
git diff
显示工作空间与暂存区的差异


git diff --cached
git diff --staged
显示暂存区与git库的差异


6. 忽略已跟踪的文件
已经跟踪的文件,再用.gitignore忽略会不起作用,此时可以用下面的命令:
git update-index --assume-unchanged FILE_NAME


撤销该操作使用下面的命令:
git update-index --no-assume-unchanged FILE_NAME


7. 合并最近的两次提交
git commit --amend -m "XXXX"
将本次提交一上一次提交合并为一次提交 


8. 远程操作
git remote -v 显示远程版本库
git remote add NAME URL添加远程版本库


例如: git remote add mt6575-ics2 [email protected]:~/repo/lily5-ics2.git
如果要将本地版本库中的分支branch_A推送到mt6575-ics2上的远程分支branch_B上
可以:
git push mt6575-ics2 branch_A:branch_B
如果要将mt6575-ics2所有分支拉到本地来
可以:
git fetch mt6575-ics2
再将工作空间切换到mt6575-ics2的branch_B
git checkout --track mt6575-ics2/branch_B


如果B代码库是从A代码库clone而来,那么A库的名字自动为: origin
可以:git pull orgin master, 或者git push orgin master


将本地分支推送到远程分支
git push origin local_branch_name:remote_branch_name


显示远程分支:
git branch -r


显示所有分支(包含远程分支和本地分支)
git branch -a


获取远程分支:
git checkout -b 本地分支名 远程分支名
或者
git checkout --track origin/R8625QSOSKQLY_3020
以上两条命令效果差不多


9. 分支操作
显示本地分支
git branch


从当前位置创建分支
        git branch <branch_name>


从指定位置创建分支
git branch <branch_name> <commit_id>


将已经创建的分支重命名
git branch -m <old_branch_name> <new_branch_name>




显示远程分支
git branch -r


显示本地分支和远程分支
git branch -a


将远程版本库的分支branch_a取到本地,同自动创建一个名字为branch_a的本地分支
git checkout --track origin/branch_a
注意: origin可以换成其它远程版本库的别名
        例如:

假如用户在8705c的版本库中工作,又给8703c的远程版本库取了别名:


git remote add 8703C [email protected]:~/repo/8703c-ap.git

那么,可以在8705c的版本库中通过别名8703C去获取8703c的任何分支


git fetch 8703C  //同步8703c到8705c的版本库


git branch -a    //显示8703c和8705c的所有分支信息


git chekcout --track 8703C/branch_a 
//将8703c的远程分支拉到8705c的本地版本库,
//并自动创建同名的本地分支,再切换到此分支
 


10. 打标签
git tag -a MOBA-MSM8x25Q-3050-AP-V0.0 -m "xxx"
git tag -s v1.x -m "xxx"


11. 版本回退
git reset --hard commit_id 彻底回退到指定版本,包括版本库和工作空间
git checkout commit_id


12. 保存工作状态
git stash "the comment of current working state"     //将工作空间的修改保存,然后将工作空间的代码恢复到最新一次提交的状态
git stash apply                                      //恢复到上面的状态


也可以多次缓存,系统会将缓存保存在队列中,用下面的命令可以看到已经保存的缓存列表
git stash list
使用任意一个缓存可以用下面的命令
git stash apply stash@{1}  //1可以根据需要改成其它数字


13. 将服务器上的版本库回退
    git reset --hard <commit_id>


    git push origin HEAD --force


14. 从codeaurora上下载AP代码的命令:
repo init -u git://codeaurora.org/platform/manifest.git -b release -m LNX.LA.3.2.1.4-00610-8x26.0.xml --repo-url=git://codeaurora.org/tools/repo.git




15. patch相关操作
    将当前分支与指定分支比较,将不同的提交生成patch
    git format-patch -M <local branch name>
    
    切换到目标分支后,应用某个patch
    git am XXXX.patch


    同一个分支上可以提取任意两次提交之间的patch
    git format-patch <commit_id old>..<commit_id new>


    注意:<commit_id old>代表离当前较久远的一次提交,<commit_id new>代表离当前时间较近的一次提交,两次提交之间用两个.连接。


git是个十分方便的工具,合理利用,事倍功半。

另外有兴趣的朋友也可以看看我们的gif在线制作工具:http://sosogif.com/make_online.jsp









你可能感兴趣的:(Web,git,团队,库)