一、常用命令
1.创建git工程
su git 用“git”用户登录cd /home/git
mkdir myPro.git
git init --bare 初始化库
修改下列目录的权限:
chmod -R 777 refs/
chmod -R 777 objects/
然后以用户身份登录:
su some-user
mkdir test
cd test
git clone /home/git/myPro.git/
cd myPro
cp code ./ -r 将需要上传的代码拷贝到test
git add . 添加当前目录中的所有内容
git commit -m "init project"
git commit -a "info"
git push origin master
2.设置用户信息
git config --global user.name yuhaipinggit config --global user.email linux_fish@126.com
3.git常用命令
git clone /home/git/b1s.git/ 从服务器check out代码
git status 查看当前git工程的状态(哪些文件被需要添加,哪些需要删除,哪些进行过改动)git diff 查看具体哪些内容发生了变化
git ls-files -m 查看当前修改文件的列表
git show --stat COMMIT_CODE 查看某次提交文件的列表
git show --name-status COMMIT_CODE 与上一条指令类似,查看某次提交文件的列表
git add 添加一个文件到git index [file name]• git add -A stages All
• git add . stages new and modified, without deleted
• git add -u stages modified and deleted, without new
git log 查看commit的日志
git commit -a 提交当前repos的所有的改变git commit -m 添加commit信息
git pull 同步服务器最新的代码到本地git push 上传本地的改动到服务器
git reset 回退到某一版本git reset --hard [ COMMIT_ID ] 回退到某一次commit
git checkout filename 放弃文件当前的改动,回退到服务器版本4.修改指定git库的权限
sudo chown -R git:git /home/git/myPro.git5.查看指定用户的提交
git log --author=username6.新建分支并切换到该分支
git branch branch_namegit checkout branch_name
等效于
git checkout -b branch_name
7.删除本地分支
git branch -d8.新建远程分支
将6中所创建的本地分支并push到git服务器即可9.合并分支
git merge branch_name二、常见问题
1、上传时的权限问题
在执行git push origin master之后,上传过程中报出如下错误:
objects/pack/tmp_pack_XXXXXX': Permission denied
解决方案:
首先,确认当前用户属于git用户组,如果不属于的话,添加当前用户到git用户组。
usermod -G git yuhaiping
其次,修改pack目录的权限:
chmod 777 -R /home/git/repo/proj/objects
2、为包含git信息的代码二次建立git工程
在实际应用中,我们得到的很多源代码里面都含有git工程信息(.git目录和.gitignore文件),如果直接为这样的源代码二次建立git工程,常常会出错,导致git工程无法正常建立。此时,可以按如下步骤进行操作。A.删除源码中的所有.git目录
find ./ -name .git | xargs rm -fr
B.创建git工程,并提交源码(由于源码中存在.gitignore文件,所以代码可能提交不全)
C.删除用于提交的源码中的所有.gitigore文件,再进行提交
git add .
3.将已存在的git项目迁移到其他服务器
进入当前存在的git项目目录,执行如下命令:$ git push --mirror 新项目地址
然后,从新地址clone就可以正常使用了。