GitHub is a hosting platform for open-source and private software projects. Due to the large number of users but the serious imbalance between men and women, GitHub is nicknamed as the world’s largest same-sex dating website in the program industry. At that time, Linux system came out in an unprecedented splendor. More and more program apes joined in the development and maintenance army. Such a huge project volume does not have a good project hosting platform. So Linus Daniel, the founder of Linux, spent two weeks compiling a distributed version control system in C language, that is GIT. Then git quickly became the most popular distribution In 2008, GitHub launched its version control system, which provides git storage for open source projects free of charge. Last year, it was purchased by Microsoft Dad (from the poor gaze) for $7.5 billion.
Now, Git is built in vs code. You can directly perform git operation in vs Code by configuring the file path and default opening method, which is very convenient and fast.
Many of the world’s top technology companies contribute their projects to GitHub, and we can also find many excellent open source projects on it. Thanks to GitHub, we can gallop freely in an open and smooth Internet world. Now GitHub has become the face-to-face person in the process of product development. Many enterprises will require candidates to provide GitHub accounts when interviewing. An excellent GitHub account will certainly add a lot of color to your job search.
This paper briefly introduces the birth and history of GitHub, and then explains how to use it.
Here is git’s official website, covering a very comprehensive set of GIT documents:
https://git-scm.com/
There are many git tutorials and related books on the market. They are usually very thick. If you are a beginner, we recommend Mr. Liao Xuefeng’s git tutorials. They cover all the basic functions. They can be used quickly from simple to deep. This article is based on his tutorial, according to my own use habits, from a novice point of view to reorganize, after serious study, everyone will have different harvest, find the right one for me.
1. Install Git
First of all, you need to install git locally on your own computer. Git comes with MAC system. You need to download and install windows system. The process is very simple and convenient. I won’t elaborate here. For specific installation methods of different systems, please refer to teacher Liao Xuefeng’s blog:
https://www.liaoxuefeng.com/w…
2. Sign up for GitHub account
Fill in user name, email address and password on GitHub website to register personal account.
After successful registration, you will enter GitHub homepage, with navigation bar at the top and left to right at the bottom:
Warehouse:All the warehouses you create will be displayed here
Timeline:Some activities of the people you pay attention to, such as creating a new warehouse, or star, fork, etc., will be displayed here, similar to Weibo dynamics.
New warehouse found:Here we will recommend some excellent projects with high standard stars, similar to popular microblogs.
Briefly introduce the modules of the head navigation bar:
LOGO:Click to enter GitHub Homepage
Search box:Search for users or items
Pull requestes:View push request information
Issues:View problem push information
Marketplace:The latest software is provided here, which is code software Mart
Explore:Introducing popular software on GitHub
3. Configure GitHub account locally
After installing git, enter:
$git config — global user. Name “your GitHub user name”
$git config — global user.email “your GitHub registered email”
To configure your own GitHub user name and email address
4. Create SSH key key
GitHub needs to confirm that the content is pushed by you through SSH protocol, otherwise anyone can submit changes to your warehouse, which is very dangerous. When using multiple computers for development, you need to configure multiple SSH keys to ensure that you can push the content to your own warehouse.
First, find the. SSH directory locally. Mac users use the shortcut key: Shift + Command + G to enter ~ /. SSH for quick search. Check whether there are two files in the directory: id_rsa (private key) and id_rsa.pub (public key). If not, run SSH keygen – t RSA – C “your GitHub mailbox” in the terminal to generate SSH key.
Enter the GitHub website, click the personal portrait in the upper right corner, find settings in the bottom, find SSH and GPG keys in the sixth option on the left, click New SSH key, paste the content in your id_rsa.pub into the key, fill in any title, and save it, then you can push the content to the remote GitHub warehouse locally.
5. Synchronize local warehouse repository to remote
(1) Initialize a git warehouse: git init
After executing this command, there will be another. Git directory under the current directory. This directory is git to track and manage the version library. Do not delete it. If you cannot see the modification of this file, open the display hidden file.
(2) Add file to warehouse command:
Git add filename adds the specified file to the staging area, separated by spaces
Git add / git add – A / git add — all add all workspace contents to the staging area (including adding, modifying, and deleting files)
Git add. Add all contents in the current directory to the temporary storage area (including adding and modifying files)
After executing the add operation, you are right without any display. In the process of using git, remember that no message is good news, and only when there is an error, it will give you an error message.
This command can be used multiple times. Submit all the files you need to add to the staging area, and then execute git commit once to submit the files submitted to the staging area multiple times to the current branch at one time.
(3) Submit file to current branch
Git commit – M “commit instructions”
Git status view the submission status of the current workspace. Show after all submissions:
nothing to commit, working tree clean
Git diff view the modified content. The contents of the files in the staging area and the workspace are compared.
(4) Push to remote warehouse
First, create a new remote warehouse, click the plus sign in the upper right corner of GitHub homepage, select the first option new repository, fill in the repository name, description description, select the public attribute, check the initial this repository with a readme, and a readme document in markdown format will be automatically generated. In this way, we have created a git warehouse remotely. At present, it’s free to create an open warehouse on GitHub. Everyone can see the content in the warehouse. If you want to create a private warehouse for a fee, it encourages you to open source.
After the warehouse is created, he gives different prompts in three situations:
Create a new warehouse locally and push content to a remote warehouse
We just need to follow the instructions as follows:
Echo “ා git test demo” > > readme.md create a new readme file and write the content
Git init generates. Git version Library
Git add readme.md submits files from the current workspace to the staging area
Git commit – M “first commit” commits the contents of the staging area to the current branch
Git remote add origin git@github.com: hanxueqing / git-test-demo.git associate remote library locally
Here you can choose to use HTTPS connection or SSH connection. When using HTTPS connection, password verification is required for each push. It is relatively safe, but the disadvantage is slow. If SSH connection is used, you will get a warning when you connect GitHub with git’s clone or push command for the first time:
The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.
RSA key fingerprint is xx.xx.xx.xx.xx.
Are you sure you want to continue connecting (yes/no)?
Just enter yes
Git will output a warning that you have added GitHub’s key to a local trust list:
Warning: Permanently added 'github.com' (RSA) to the list of known hosts.
This warning will only appear once, and there will be no warning for subsequent operations.
Git push – U origin master pushes the current branch to the corresponding branch of the origin master.
Because the remote library is empty, when we push the master branch for the first time, we add the – U parameter to push the local master branch to the origin host, and specify the origin as the default host. In the later push or pull, we can simplify the command, and use git push to push without any parameters.
If there is an existing local warehouse, the desired content can be quickly pushed to the current warehouse. Only the following two instructions need to be executed:
git remote add origin git@github.com:Hanxueqing/Git-Test-Demo.git
git push -u origin master
You can also import warehouses from other version control systems such as subversion, mercurial, or TFs project
Since I checked auto generate readme document when I first created a new warehouse, and this document does not exist in my local file, an error will be reported when I push to the remote warehouse, indicating:
error: failed to push some refs to 'git@github.com:Hanxueqing/Maoyan-API.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
The reason is that the current version is lower than the remote warehouse version. You can first pull the remote warehouse to the local place, execute the GIT pull origin master command, and then execute the GIT push – U origin master command to push the remote warehouse.
Or create a new branch, GIT branch, and push it to the new branch, GIT push – U origin.
Here I directly use the method of forced push: git push – U origin master – F, but it will cover remote files, which is generally not recommended, especially when developing by multiple people.
After the above operations are performed locally, a successful command can be submitted to the terminal.
At this point, we will enter the warehouse created before entering GitHub account and find that all the files in the workspace have been uploaded in remote synchronization.
Briefly explain the functions of each module in the warehouse:
Watch: it’s similar to watching. After you watch a project, you will be notified whenever there is any update to the project.
Star: similar to praise, it’s much more difficult to get standard stars on GitHub than on social networks. Generally, it’s very good to get 1000 + star projects. Recently, the 996 ICU project in the development circle has reached 245k.
Fork: create a branch of the warehouse project and add it to your own warehouse. You can develop it on the basis of the original warehouse. After the function is complete, you can initiate the pull request request to merge the branch with the original warehouse and integrate the function.
Code: displays the list of files for the warehouse.
Issues: it is mainly used for bug report, function addition, directional discussion, etc., similar to the message board function of a discussion area. Bug is managed in the form of issues, which can be closed manually after being solved.
Pull request: view and manage pull requests from others.
Projects: This is a very powerful project management mode, which can better manage your issues. Some people use project + issues to write technical blogs on GitHub.
You can pay attention to:
https://github.com/johnnian/Blog
Wiki: wiki is a simpler page description function than HTML syntax. It is often used to record information or software documents that should be shared between developers.
Security: security warning
Insights: display the activity information of the warehouse and detect the development progress
Settings: settings. You can set the current warehouse here, such as changing the warehouse name, changing the description information, and deleting the current warehouse. However, this operation is dangerous. It allows you to enter the name of the current warehouse for secondary confirmation. If there is something in the warehouse, it also allows you to enter the account and password for secondary confirmation. The security level is very high.
Commits: commit log
Branches: Branch Management
Releases: release management
Contributors: people involved in development
Branch: Master: switch branches and display the list of files under different branches
New pull request: initiate a merge request to the original warehouse
Create new file: create a new file
Upload files: upload files
Find files: find files
Clone or download: provide HTTPS protocol or SSH protocol for clone and download
Next, it introduces some common basic operations of GIT, which is convenient for subsequent use.
Revocation
Here we have to define several concepts: workspace, staging area, current branch, remote warehouse
Workspace: a directory of files on our own computers
Staging area: the stage file in the GIT directory temporarily stores our changes to the file. Git add is to add the file to the staging area.
Current branch: git automatically creates a master branch for us. Git commit is to submit file changes to the current branch.
Remote warehouse: the repository we created at the beginning, GIT push is to push all changes to the remote warehouse.
Undo the changes in the workspace (at this time, you just modify the file, but you haven’t done any git operations): git checkout — File
Undo the modification of the staging area (at this time, you not only modify the file, but also add the modification to the staging area): git reset head < File > and then execute git checkout — File
Undo the changes submitted to the branch (at this time, you not only modify the file, but also git add adds the changes to the staging area, and git commit submits to the current branch): carry out the version fallback operation to be discussed next
Version switching
If you submit modification files to the current warehouse multiple times, you can use git log to view the complete submission log. A large number after the commit is the version number. Git implements version backoff and forward by letting the internal head pointer point to a specific version number.
If you submit multiple times, there is a long list of submission logs. You don’t want to display the author and date. You only need the first row of data to run git log — pretty = online
If you think the commitid is too long and only want to keep a few significant digits, you can run git log — online — graph
Fallback command: git reset — hard commit “ID can be fallback to the specified version
Git reset — hard head ^ head refers to the current version, head is the previous version, and the previous version is head ^. If you go back to the earlier version, you can write it as head number (how many versions before you go back)
Forward command: after executing the version fallback command and executing git log, you will find that the updated version after this version is missing. Don’t panic at this time. It hasn’t been deleted or overwritten. Git provides a command: git reflog to record your every command. As long as you find the commit ID of the file you want to recover, execute git reset — hard The commit? ID is ready to go to the specified version.
File deletion
(1) You deleted a file in the workspace and want to synchronize the changes to the remote warehouse.
Git status to view the current status, show that the file in the current workspace has been deleted, use git RM filename command to delete the file in the version library, and then git commit to upload to the current branch.
(2) You deleted a file in the workspace by mistake and want to recover it from the remote warehouse. (if you have submitted the version library before deleting this file in the workspace)
Git checkout — filename
Git checkout is actually to replace the files in the workspace with the files in the version library. No matter whether the workspace is modified or deleted, you can restore the files with one click. However, you can only restore the files to the latest version in the version library. If you make some changes after submitting the version library but do not submit them in time, GIT will not automatically record these changes for you.
Branching operation
First of all, let’s understand the concept of branch. It has been mentioned before that git will automatically create a master branch for us. However, when developing a multi person project, we can’t all submit changes to the main branch, which has great security risks. At this time, GIT encourages us to use the branch to complete tasks. The head pointer points to the current branch, and everyone goes to their own The files submitted on the branch do not interfere with each other. Usually, you can use branches to manage different functional modules when you develop your own projects. Finally, you can use the merge branch command to integrate the files together. This is the same as working directly on the master branch, but the process is safer.
That is to say, in the actual development, the master branch should be very stable, only used to release new versions, and usually can’t operate on it. We can do specific operations on dev, merge everyone’s branches into dev branches, and then merge dev branches into the master when the version is released.
Create branch
Git checkout – B branch name
The GIT checkout command plus the – b parameter indicates creation and switching, which is equivalent to the following two commands:
$git branch branch branch name create branch
$git checkout branch name switch branch
Push locally created branches to remote
Git push origin branch name
View branch
The GIT branch command lists all branches, and the current branch is preceded by a * sign.
Git branch – R view remote branch
Git branch – a view all branches
Merge branch
Git merge branch name (Note: to switch back to the branch to be merged before merging, you cannot merge under the current branch)
Delete branch
Git branch – D branch name
Git branch – D branch name forcibly deletes a branch that has not been merged. By default, it is not allowed to delete a branch that has not been merged.
Clone remote warehouse
Git clone warehouse address the warehouse address can be found on the front page of the warehouse, and it can be cloned locally through the clone command.
The use of GitHub is simply introduced here, but its functions go far beyond this. There’s an answer. How to use GitHub effectively? Some people use GitHub to put resumes, write blogs, write books and read information. Some people use GitHub as a circle of friends and microblogs, interact with technical bulls, and post links. Those who are interested can pay attention to it:
https://www.zhihu.com/questio…
In a word, it’s like a treasure. There are always bright spots and places worth learning to explore.