我是靠谱客的博主 爱撒娇马里奥,这篇文章主要介绍Contribute to repositories on GitHubAboutGit configCreate EnvContribut to GitHubOther usages for GitReference,现在分享给大家,希望可以做个参考。
Contribute to repositories on GitHub
- About
- Git config
- Create Env
- Contribut to GitHub
- Fork it
- Branch it before you work
- Push it
- Updating a Pull Request
- PR cannot be merged
- Undo my commit
- Other usages for Git
- Show history
- Branch
- Git remove
- Git stash
- cherry-pick
- Reference
About
- Take Robottlo repo as an example, introduce the steps for contributing to repositories on Github
Git config
- Create SSH key
$ ssh-keygen -t rsa -C "youremail@example.com" cat ~/.ssh/id_rsa.pub
- Login GitHub > Account Settings > SSH and GPG Keys > SSH keys > New SSH key > Add SSH key
- Config username and email
$ git config user.name “username” $ git config user.email “username@emil.con” $ git config --list
Create Env
- Clone the repositories
git clone git://github.com/SatelliteQE/robottelo.git
- Create a independent env
virtualenv venv
source venv/bin/activate
(venv) $
Contribut to GitHub
Fork it
- Show remote repositories
(master) $ git remote -v
origin git@github.com:hkx303/robottelo.git (fetch)
origin git@github.com:hkx303/robottelo.git (push)
- Add Robottelo as a remote repository to your fork
(master) $ git remote add upstream git@github.com:SatelliteQE/robottelo.git
- check it again
(master) $ git remote -v
origin git@github.com:hkx303/robottelo.git (fetch)
origin git@github.com:hkx303/robottelo.git (push)
upstream git@github.com:SatelliteQE/robottelo.git (fetch)
upstream git@github.com:SatelliteQE/robottelo.git (push)
- Fetch latest upstream code
(master) $ git fetch upstream
- Rebase your fork’s master repo to match upstream’s
(master) $ git rebase upstream/master
Branch it before you work
- Create new local repo to work on issue or feature
(master) $ git checkout -b branch_name
or
(master) $ git branch branch_name
(master) $ git checkout branch_name
- Show your changes
(branch_name) $ git status
(branch_name) $ git diff
- Make all your changes in the local branch_name repo and commit with a nice, short subject and a detailed message
(branch_name) $ git add <all modified or new files>
(branch_name) $ git commit
Add more information about what the entire commit is about.
Push it
- use pycodestyle-3 to check the code style
pip install pycodestyle-3
- check code
pycodestyle-3 --show-source --first <filename>
- Push your changes for a PR
(branch_name) $ git push origin branch_name
- Create a Pull Request through the github link
Updating a Pull Request
- Need to make more changes either because you received feedback for your PR or because you’re not done yet?
(branch_name) $ pycodestyle-3 --show-source --first <filename> (branch_name) $ git add <files> (branch_name) & git commit -m "messages" (branch_name) $ git push origin branch_name
PR cannot be merged
- First, let’s rebase your master to reflect upstream’s master
(branch_name) $ git checkout master (master) $ git fetch upstream (master) $ git rebase upstream/master (master) $ git push
- Now, let’s rebase our working directory against your master
(master) $ git checkout branch_name (branch_name) $ git rebase master
- Push your rebased branch_name back to Github
(branch_name) $ git push origin branch_name
- Git complaining about rebase because commit history is being changed? Use the --force Luke
(branch_name) $ git push origin branch_name --force
Undo my commit
- So you made changes to FILE but you changed your mind and want to revert your changes? Don’t want to preserve your changes either?
(branch_name) $ git checkout -- FILE
- So you made changes to FILE, ran git add FILE but you changed your mind and want to revert your changes? Want to preserve your changes?
(branch_name) $ git reset HEAD FILE
- So you went ahead and committed your changes and everything is ‘staged’, but you changed your mind and want to ‘unstage’ it?
- If you want to preserve your changes so that you can continue working on them:
(branch_name) $ git reset --soft HEAD~
- If you don’t want to preserve your changes:
(branch_name) $ git reset --hard HEAD~
NOTE: Please note that HEAD~ represents ‘the last commit’. If you want to undo the last 3 commits, then change HEAD~ to HEAD~3.
Other usages for Git
Show history
- Show git history
git log
- Show git history and reduce output messages
git reflog
- Show git history command
git reflog
- Show git branch graph
git log --graph
Branch
- Merge branch to current branch
git merge <branch_name>
- Delete branch
git branch -d <branch_name>
Git remove
$ git rm test.txt
rm 'test.txt'
$ git commit -m "remove test.txt"
Git stash
- Stash the changes in a dirty working directory away
$ git stash
- Check stash list
$ git stash list
- Restore the stash and do not delete it
$ git stash apply
- Restore the stash and delete it
$ git stash pop
- Restore the expected stash
$ git stash apply stash@{0}
cherry-pick
- Copy commit to current branch
$ git cherry-pick 4c805e2
Reference
How To Contribute
最后
以上就是爱撒娇马里奥最近收集整理的关于Contribute to repositories on GitHubAboutGit configCreate EnvContribut to GitHubOther usages for GitReference的全部内容,更多相关Contribute内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复