1. 配置git客户端
1.1 设置ssh Key
查看是否有ssh key
ls -al ~/.ssh
没有则生成ssh key
ssh-keygen -t rsa -b 4096 -C "[email protected]"
将生成的公钥 (.pub为后缀) 上传到git网站上
eval $(ssh-agent -s) //确定ssh-agent正在运行
ssh-add ~/.ssh/id_rsa //添加ssh私钥到客户端
ssh [email protected] //测试
1.2 设置用户名和邮箱
git config --global user.name "NAME HERE"
git config --global user.email "[email protected]"
2. 管理项目
2.1 本地已有项目
在项目的目录下执行以下命令(git bash)初始化仓库
git init
项目下会多出.git文件夹(默认隐藏)
将项目与远程仓库关联
git remote add origin [email protected]:arcsinW/OpenHelloCDUTUWP.git
提交更改
git add .
git commit -a -m "Initial commit"
git push origin master
或者
git add .
git commit -a # 接着在git bash 里的文本编辑器里写Commit message
git push origin master
2.2 从远程仓库获取项目
git clone https://github.com/libgit2/libgit2
2.3 分支
git checkout -b dev # 新建并切换到dev分支
git branch # 查看本地分支
git branch -a # 查看远程分支
git checkout master # 切换到master分支
git merge dev # 合并dev分支到当前分支
git branch -d dev # 删除dev分支
git push origin --delete dev # 删除远程dev分支
git checkout -b dev origin/dev # 从远程仓库拉取本地不存在的dev分支
2.4 版本控制
git log --pretty=oneline # 查看提交日志
git --no-pager log # log不分页
git reset --hard HEAD^ # 回退到上一commit
git reset --hard [commit_id] # 回退到指定commit,commit_id只需写前几位,能唯一确定这个commit即可
3. some solutions
- refusing to merge unrelated histories
加上--allow-unrelated-histories
git pull origin master --allow-unrelated-histories
- 修改提交到远程仓库的commit信息
查看本地仓库的log信息,找到要修改的commit之前一个commit的id
git rebase -i [commit_id]
将要修改的commit信息前的pick改成edit
git commit --amend #修改commit信息
git rebase --continue
git push -f origin master #覆盖远程仓库commit信息(也会覆盖其他人的提交)
- 重新添加 .gitignore
git rm -r --cached .
git add .
git commit -m "add .gitignore file"
- 查看版本控制下的文件
git ls-files