安装git
apt-get install gi
在Ubuntu上创建git用户
sudo adduser git
这样在/home目录下就多了一个git目录
在git用户下创建.ssh 目录
cd /home/git
mkdir .ssh
cd .ssh
vi authorized_keys
将本地~/.ssh 里的id_rsa.pub中的内容添加到服务器端的authorized_keys
初始化一个git仓库
在opt下建一个git目录,以后git的仓库都放在这个目录
cd /opt
mkdir git
chown -R git:git git //修改git目录的拥有者
chmod 777 git
cd git
// chown将指定文件的拥有者改为指定的用户或组
chown -R 用户名:组名 文件
初始化一个project仓库,一般以.git结尾进行命名
mkdir project.git
cd project.git
git --bare init
本地进行代码推送
# 在 本地 的电脑上
cd myproject
git init
git add .
git commit -m 'initial commit'
git remote add origin git@gitserver:/opt/git/project.git
git push origin master
若因权限问题推送失败,则可能是文件夹所有者问题
# 修改服务器project.git仓库的所有者
chown -R git:git project.git
保存工作现场
git stash
使用git stash
会将工作现场保存起来,用git status查看工作区,就是干净的(除非有没有被Git管理的文件,如新添加的文件)
git fetch
git fetch →→ 这将更新git remote 中所有的远程仓库所包含分支的最新commit-id, 将其记录到.git/FETCH_HEAD文件中
git fetch remote_repo →→ 更新名为remote_repo 的远程仓库上的所有branch的最新commit-id,将其记录(只有origin仓库的话,2就和1一样了)
git fetch remote_repo remote_branch_name →→ 将更新名为remote_repo 的远程仓库上的remote_branch_name分支
git fetch remote_repo remote_branch_name:local_branch_name →→ 在3的基础上再创建一个local_branch_name。
# git pull和git pull --rebase
git pull = git fetch + git merge
git pull --rebase = git fetch + git rebase
参考1
git merge和git rebase
git merge :有分叉
git rebase :没有分叉
参考1
参考2
在rebase的过程中,也许会出现冲突(conflict). 在这种情况,Git会停止rebase并会让你去解决 冲突;在解决完冲突后,用git-add
命令去更新这些内容的索引(index), 然后,你无需执行 git-commit,只要执行:git rebase --continue