Alumni and Gitlab - Getting Started: Difference between pages

From Computer Science at Indiana State University
(Difference between pages)
Jump to navigation Jump to search
 
 
Line 1: Line 1:
Where ISU CS Alumni have ended up, in alphabetical order by location ...  If you are an ISU CS alumnus and don't see your current place of employment listed please get in touch with the a CS faculty member.
''This page is part of [[Programming and CS - Getting Started]]''


=Corporate/Government=
=Git=
[https://en.wikipedia.org/wiki/Git Git] is a version control system that can be used to keep track of your files (programming code, but also other files as well). 


==Terre Haute area==
Two of the most popular installations of git (as of 2020) are [https://github.com/ github] and [https://gitlab.com/ gitlab].  When Microsoft purchased github, it became fashionable to prefer gitlab.  Github allows for projects to be hosted on their servers. Gitlab allows for hosting either on their servers or to run a local installation of gitlab on ones own servers.
City Government of Terre Haute, Clabber Girl, Hopebridge, Indiana State University, Infraware Inc., North American Lighting, Police Technical LLC, Rose-Hulman Institute of Technology, TagLeaf Industries, Vigo County Public Library


==Indianapolis Area==
Of late, we have hosted projects using gitlab either on gitlab's servers or on ISU's local installation of gitlab.
Allegion, Anthem, Beckman Coulter Life Sciences, Clarian Health Partners, Community Health Network, Defense Finance and Accounting Service, Dow AgroSciences, Eli Lilly and Company, GyanSys, Ernst and Young, Exacq Technologies, Heritage Group, Indiana Health Information Exchange, Indiana State Government, Indianapolis Power & Light Company, Indianapolis Zoological Society, Infosys, Infrastructure and Energy Alternatives, Interactive Intelligence / Genesys, IU Health Riley's Childrens Hospital, Knowledge Services, Liberty Mutual, LifeOmic, MicroMetl Corporation, myCOI, PAR North America, Pondurance, Protective Insurance, ProTrans Development, Raytheon, Republic Airways, Rolls Royce, Ryan Consulting Group, Salesforce, T2 Systems, Van Ausdall & Farrar, Wishard Health Services


==Indiana & Vicinity==
=Account Setup=
AIM Specialty Health, AllScripts, Aon, Aprimo, Ascension Technologies, Aunalytics, Bioanalytical Systems Inc., Cummins, Engineering Computer Network - Purdue University, FireEye, Five-Star Technology Solutions, Good Samaritan Hospital (Vincennes), Health Alliance, High Wire Networks, Hinge Health, iGenMedia, Keller Schroeder, Kimball International, Mead Johnson, Midrange Professionals Inc., NAP Gladu, Naval Surface Warfare Center - Crane Division, Northern Illinois University, Pringle Technologies Inc., Purdue University, Rally Health, Rediminds, RLI Corp, SCHOTT Gemtron, Sherwin Williams, State Farm Insurance, TrueScripts Management Services, Turnkey Computer Systems, University of Illinois Urbana-Champaign, USRRB, Vincennes University, Zirmed
'''On gitlab.com''' - Account setup on [https://gitlab.com/ gitlab.com] is just like any other website.  You create a free account, choose your username/password, etc.  The account is yours and is not tied in any particular way to ISU. You can give access to your projects in much the same way as you give access to files on google drive, onedrive, dropbox, etc.


==US==
'''On git.indstate.edu''' - ISU's local installation of gitlab is at https://git.indstate.edu/.  For this system you use your ISU portal id and password. You do not need to create an account. The first time you login into the system, it initializes an account for you.  CS courses and ISU CS projects in general tend to use ISU's local installation because we can tie access based on course rosters, etc.
4C Insights, Accenture, Aeronautical Radio Incorporated (ARINC), AirWatch, Amazon, AMD, American Society of Composers and Publishers, Apple, Astra Inc., AU Optronics, Bank of America, Blackboard, Boston Scientific, Budweiser, CACI, Cap Gemini S.A., Caterpillar, CenturyLink, Cisco, Cogent Infotech, Columbia Sports, Dell, Department of Defense, DigitalOcean, Egiants Technologies, Epic Systems, Euclid Elementz, Foxconn, GalaxE Solutions, Geico, Georgia-Pacific LLC, GlobalFoundries, Gogo Business Aviation, Google, Halliburton, Hewlett-Packard, Internet Brands, Intuitive Machines, ITHAKA, JPMorgan Chase, Kovarus Professional Services, Lawrence Livermore National laboratory, Lockheed-Martin, Los Alamos National Labs, Maine Department of Education, MAQ Software, Miami University, Microsoft, National Security Agency, Northrop Grumman, Ohio Department of Commerce, Oracle, PepsiCo, Principal Financial Group, Proofpoint, Randolph Brooks Federal Credit Union, Sally Beauty Holdings, Red Hat Software, Sprint, Starbucks Corp, State of Alabama CARES, SWM International, Travelers Insurance, Sallie Mae, The George Washington University, Thomson Reuters, TracFone Wireless Inc., United Healthcare, United States Air Force, United States Army, University of Texas at Dallas, Veritas, Verizon, Veterans Health Administration, Visa, VRBO, Walmart eCommerce, Walt Disney, Wells Fargo


==International==
=SSH Keys=
Academia Sinica, Chinese Academy of Sciences, Dar Al-Hekma University, Majmaah University, Petronas ICT Sdn Bhd, Phonon Communications Pvt Ltd, Sadara Chemical Company, Saudi Aramco, Saudi Electricity, Savola Group, SFDA, Tata Consultancy Services, Universiti Sains Malaysia
You will normally want to have SSH keys setup so that you can interact with the git server without having to enter a username and password. Instructions are here: https://docs.gitlab.com/user/ssh/


=PhD Programs=
You will need to edit your ssh configuration so that it knows which key to use when connecting to git.indstate.edu. On a Mac or Linux, edit the file <code>~/.ssh/config</code> and put a section like this:
Some of the universities where our graduates have had offers of assistantships for PhD programs -
<pre>
University of Arizona, University of California-Merced, University of California-Riverside, Emory University, Georgia University, Indiana University Bloomington, University of Louisville, University of Massachusetts-Boston, University of Miami, University of Pittsburgh, Queen's University (Ontario), Simon Fraser University, University of Maine, Syracuse University, University of Texas-Dallas, University of Utah, Virginia Tech
Host git.indstate.edu
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/git_indstate_id
</pre>
You should replace the name git_indstate_id with whatever filename you used for the private key. On Windows, the file should be in your home directory (normally C:\Users\YOUR_USERNAME) and then .ssh/config (so, similar to where it is for Mac and Linux).
 
Note - for editing the config file, you should use a plain text editor (Notepad on Windows, TextEdit on Mac, or something nicer; not Word).
 
Note - you will need to enable the ability to see "hidden" files. On Mac, you press cmd-shift-. to see hidden files in Finder. On Windows, in File Explorer you need to: click the triple dots near the top right, click Options, click View, select "Show files, folders, and drives", and also unselect "Hide extensions for known file types".
 
You can clone a repository from git.indstate.edu using a command like this: <code>git clone git+ssh://git@git.indstate.edu/ect-437-fall-2026/hello-class.git</code>, but where you would replace the link with whatever repository you are cloning.
 
==Windows - Using Putty==
If you are on Windows and are getting an access error when you tro to run the git clone command, it might work by changing the configuration for git to use a different program for ssh. You can try the following.
* Download and install Putty from: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
* Open your terminal (command prompt) and run the following commands:
<pre>[Environment]::SetEnvironmentVariable("GIT_SSH", "plink.exe", "User")
git config --global core.sshCommand "plink.exe"</pre>
* Open the app PuttyGen (that is installed along with Putty). Click "Load", and load your private key file (id_ed25519 if you used default settings). Then click "Save private key", and save the private key in the ppk format (may as well store it in your .ssh directory).
* Open the app Pageant (that is also installed along with Putty). This runs in the background, so nothing will appear on the screen. Look in your system tray for a new icon. Click on the Pageant icon in the system tray, right-click on it, and click "Add key". Select the ppk file you just produced.
* Close your terminal windows and open a new one. Try running the git pull command again.
 
=Getting Around=
Whether you are using gitlab.com or git.indstate.edu, the functionality and "how to get around" is about the same.  You have two main methods for using either.
 
==Web browser interface==
You can view projects within your web browser.  How to get around is fairly intuitive - as is the case with any web page, you look around and click around to see what different things do.  When you have something specific you want to do but don't see how to do, you ask the internet or ask your instructor (and we may update this wiki to give instructions on how to do it).
 
==Terminal interface==
Git allows for downloading/uploading/etc. files in your projects from the terminal.  In order to do this, you need to (a) have a git client installed on your system, (b) understand the terminology that git uses for keeping track of files and the steps in using git to download/update/upload files, (c) make it so.
 
Some reading material about using git - https://www.tutorialspoint.com/git/index.htm
 
===Vocab / Cheat Sheet===
 
===Workflow===
A common use case is that you will need to download someone else's (e.g., instructor's) gitlab project, create your own version of some part of the project, test/debug your version of the project, eventually put in a request to update the main project with your code.  The steps involved in that workflow.
 
'''Clone''' - To download the current version of the project you (a) browse in your terminal to the directory where you want to have the project code, (b) run <code>git clone url_to_project</code>
 
'''Branch''' - If a branch has already been created for you, then you can set that as your active branch by running <code>git checkout branch_name</code>.  If a branch has not yet been created for you, you run <code>git branch branch_name</code> to create a new branch.  In either case, you have a branch of the project to work within.
 
'''Do your work''' - You work on your files locally - test, debug, etc.
 
'''Stage/Commit/Push''' - To save your work to the remote server, you need to stage, commit, and push.  You can stage/commit batches of changes, or do a stage/commit for each discreet task accomplished.  If you are working in some_file.txt, you would run the following sequence of commands.
<pre>
git add some_file.txt  # this "stages" the file to be part of the next commit
git commit -m "Some updates to the file" # This commits, will be a permanent record of this version of the file
git push              # sends all committed changes to the remote server
</pre>
Note that the push may ask for login information to the remote server.  If you have an ssh key configured for the project (see section above), then you won't be asked for login information.
 
'''Pull''' - To pull/download updates that have happened (by others), you use <code>git pull</code>.
 
'''Merge''' - When you ready to have your changes merged in to the main branch of the project, ask the owner of the project to check your branch.  When the owner is ready for it, the owner can run the following commands.
<pre>
git branch main        # owner is working in the main branch
git merge branch_name  # merge your branch into the main branch
</pre>

Revision as of 17:12, 30 August 2026

This page is part of Programming and CS - Getting Started

Git

Git is a version control system that can be used to keep track of your files (programming code, but also other files as well).

Two of the most popular installations of git (as of 2020) are github and gitlab. When Microsoft purchased github, it became fashionable to prefer gitlab. Github allows for projects to be hosted on their servers. Gitlab allows for hosting either on their servers or to run a local installation of gitlab on ones own servers.

Of late, we have hosted projects using gitlab either on gitlab's servers or on ISU's local installation of gitlab.

Account Setup

On gitlab.com - Account setup on gitlab.com is just like any other website. You create a free account, choose your username/password, etc. The account is yours and is not tied in any particular way to ISU. You can give access to your projects in much the same way as you give access to files on google drive, onedrive, dropbox, etc.

On git.indstate.edu - ISU's local installation of gitlab is at https://git.indstate.edu/. For this system you use your ISU portal id and password. You do not need to create an account. The first time you login into the system, it initializes an account for you. CS courses and ISU CS projects in general tend to use ISU's local installation because we can tie access based on course rosters, etc.

SSH Keys

You will normally want to have SSH keys setup so that you can interact with the git server without having to enter a username and password. Instructions are here: https://docs.gitlab.com/user/ssh/

You will need to edit your ssh configuration so that it knows which key to use when connecting to git.indstate.edu. On a Mac or Linux, edit the file ~/.ssh/config and put a section like this:

Host git.indstate.edu
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/git_indstate_id

You should replace the name git_indstate_id with whatever filename you used for the private key. On Windows, the file should be in your home directory (normally C:\Users\YOUR_USERNAME) and then .ssh/config (so, similar to where it is for Mac and Linux).

Note - for editing the config file, you should use a plain text editor (Notepad on Windows, TextEdit on Mac, or something nicer; not Word).

Note - you will need to enable the ability to see "hidden" files. On Mac, you press cmd-shift-. to see hidden files in Finder. On Windows, in File Explorer you need to: click the triple dots near the top right, click Options, click View, select "Show files, folders, and drives", and also unselect "Hide extensions for known file types".

You can clone a repository from git.indstate.edu using a command like this: git clone git+ssh://git@git.indstate.edu/ect-437-fall-2026/hello-class.git, but where you would replace the link with whatever repository you are cloning.

Windows - Using Putty

If you are on Windows and are getting an access error when you tro to run the git clone command, it might work by changing the configuration for git to use a different program for ssh. You can try the following.

[Environment]::SetEnvironmentVariable("GIT_SSH", "plink.exe", "User")
git config --global core.sshCommand "plink.exe"
  • Open the app PuttyGen (that is installed along with Putty). Click "Load", and load your private key file (id_ed25519 if you used default settings). Then click "Save private key", and save the private key in the ppk format (may as well store it in your .ssh directory).
  • Open the app Pageant (that is also installed along with Putty). This runs in the background, so nothing will appear on the screen. Look in your system tray for a new icon. Click on the Pageant icon in the system tray, right-click on it, and click "Add key". Select the ppk file you just produced.
  • Close your terminal windows and open a new one. Try running the git pull command again.

Getting Around

Whether you are using gitlab.com or git.indstate.edu, the functionality and "how to get around" is about the same. You have two main methods for using either.

Web browser interface

You can view projects within your web browser. How to get around is fairly intuitive - as is the case with any web page, you look around and click around to see what different things do. When you have something specific you want to do but don't see how to do, you ask the internet or ask your instructor (and we may update this wiki to give instructions on how to do it).

Terminal interface

Git allows for downloading/uploading/etc. files in your projects from the terminal. In order to do this, you need to (a) have a git client installed on your system, (b) understand the terminology that git uses for keeping track of files and the steps in using git to download/update/upload files, (c) make it so.

Some reading material about using git - https://www.tutorialspoint.com/git/index.htm

Vocab / Cheat Sheet

Workflow

A common use case is that you will need to download someone else's (e.g., instructor's) gitlab project, create your own version of some part of the project, test/debug your version of the project, eventually put in a request to update the main project with your code. The steps involved in that workflow.

Clone - To download the current version of the project you (a) browse in your terminal to the directory where you want to have the project code, (b) run git clone url_to_project

Branch - If a branch has already been created for you, then you can set that as your active branch by running git checkout branch_name. If a branch has not yet been created for you, you run git branch branch_name to create a new branch. In either case, you have a branch of the project to work within.

Do your work - You work on your files locally - test, debug, etc.

Stage/Commit/Push - To save your work to the remote server, you need to stage, commit, and push. You can stage/commit batches of changes, or do a stage/commit for each discreet task accomplished. If you are working in some_file.txt, you would run the following sequence of commands.

git add some_file.txt  # this "stages" the file to be part of the next commit
git commit -m "Some updates to the file" # This commits, will be a permanent record of this version of the file
git push               # sends all committed changes to the remote server

Note that the push may ask for login information to the remote server. If you have an ssh key configured for the project (see section above), then you won't be asked for login information.

Pull - To pull/download updates that have happened (by others), you use git pull.

Merge - When you ready to have your changes merged in to the main branch of the project, ask the owner of the project to check your branch. When the owner is ready for it, the owner can run the following commands.

git branch main        # owner is working in the main branch
git merge branch_name  # merge your branch into the main branch