Tutorial - Git
Published:
init repository
初始化本地repository。
git init
对本地repository进行git管理。
git add * git commit -m “some info”
关联远端repository。
git remote add origin https://github.com/yourgithubID/gitRepo.git
这个 *https://github.com/yourgithubID/gitRepo.git * 必须存在,需要提前到github上建好。当然这里不限于github,其他git服务器也可以。
将本地仓库push到远程仓库
git push -u origin master
由于在建立github repository时,在master分支创建了README.md,在push时候出现错误。
可以通过如下命令进行代码合并【注:pull=fetch+merge] git pull –rebase origin master 执行上面代码后可以看到本地代码库中多了 README.md 文件。 再执行语句 git push -u origin master 即可完成代码上传到github。
clone
–depth
比如,下条只取最近一次commit的history。
git clone –depth 1 git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
下载指定分支或者tag: git clone -b ‘v2.0’ –single-branch –depth 1 https://github.com/git/git.git
branch
list branches git branch -a
checkout a specific branch git checkout
Create the branch on your local machine and switch in this branch
git checkout -b [name_of_your_new_branch]
Push the branch on github
git push origin [name_of_your_new_branch]
或者首次使用 -u 选项,之后仅仅使用git push即可。
git push -u origin
Delete a branch on your local filesystem
git branch -d [name_of_your_new_branch]
To force the deletion of local branch on your filesystem
git branch -D [name_of_your_new_branch]
Delete the branch on github
git push origin :[name_of_your_new_branch]
版本管理
git reset 版本回滚,向前回滚两个版本,可以用 HEAD~2,也可以使用7位commit id号。 git reset HEAD~2 git reset 1234567
Revert 顾名思义,版本还原,即撤销一个提交的同时会创建一个新的提交。 还原倒数第二个commit。 git revert HEAD~2
revert 和 reset 区别是revert会改变提交历史,而reset不会。
undo all changes unstage all files you might have staged with git add git reset
revert uncommitted changes git checkout .
git reset –hard HEAD
remove all local untracked files preview files to be deleted!
git clean -n
then remove all untracked files.
git clean -fdx
github操作
为了方便管理repository,免去每次push时候输入账户名和密码,接下来我们需要生成SSH公私钥对,并将公钥上传到 project->Settings->Deploy keys->Add deploy key。 首先检查是否已经存在 SSH key 。
ls -al ~/.ssh
出现类似
id_dsa.pub id_ecdsa.pub id_ed25519.pub id_rsa.pub
如果想继续使用上述密钥,可直接将公钥拷贝出来;否则,要继续自行生成。
Generating a new SSH key and adding it to the ssh-agent
ssh-keygen -t rsa -b 4096 -C “your_email@example.com”
如果想要保存不一样的位置或者名称,在下面的提示信息中输入即可。
Enter a file in which to save the key (/home/you/.ssh/id_rsa): [Press enter]
将 SSH key 添加到 ssh-agent 中。
eval “$(ssh-agent -s)” ssh-add ~/.ssh/id_rsa 执行ssh-add时出现 Could not open a connection to your authentication agent 。 可能当前SHELL不支持,退出当前SHELL即可。
ssh-agent bash
再次执行
ssh-add ~/.ssh/id_rsa ssh-add -l
github如何向开源项目提交pr
fork 到自己的仓库 git clone 到本地
上游建立连接 git remote add upstream 开源项目地址
创建开发分支 (非必须) git checkout -b dev
修改提交代码 git status git add . git commit -m “message” git push origin branch
同步代码三部曲 git fetch upstream git rebase upstream/master git push origin master
提交pr 去自己github仓库对应fork的项目下new pull request